|
Вопрос # 2 226/ вопрос решён / |
|
Здравствуйте уважаемые эксперты! Помогите написать программу, в которой используется MDI-окна (текстовые). Дан текстовый файл с каким-то текстом на диске С:\ . На форме в окно TEdit вводится некоторое слово, а по нажатии TBitton в окне TMemo Выводятся именно те предложения текста, которые содержат данное слово.
Подскажите как и с помощью каких компонентов это реализовать, не хочется перед преподом полным идиотом выглядеть!
 |
Вопрос задал: Darchiev Marat (статус: Посетитель)
Вопрос отправлен: 23 декабря 2008, 01:44
Состояние вопроса: решён, ответов: 2.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Darchiev Marat!
Не совсем понятно, какой Вы хотите спроектировать дизайн, пример текстового MDI редактора можно найти в демках, которые поставляются с делфи. А код, который выполнит Ваше требование, я привожу ниже
var sl:TStringList;
s:string;
i:integer;
begin
s := Edit1.text;
sl := TstringList.create;
sl.LoadFromFile('C:\file');
Memo1.Clear;
for i:=0 to sl.count -1 do
if pos(s, sl[i]) <> 0 then Memo1.lines.add(sl[i]);
sl.free;
end;
Надеюсь, что по предложениями понимались строки файла. А то в противном случае код заметно усложняется. Хотя всё равно не такой уж и сложный.
По поводу компонентов - Вы уже сами написали всё, что надо.
Если код преподавателю покажеться слижком сложным - перепишем проще:)
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 23 декабря 2008, 02:17
Оценка за ответ: 5
Комментарий к оценке: Здравствуйте Вадим! Исчерпывающий ответ, коротко и ясно. Мне самое главное идея, а там дальше сколько фантазии хватит.
благодарю.
|
Ответ #2. Отвечает эксперт: Anderson N.N
Здравствуйте, Darchiev Marat!
Вот еще один вариант ! Когда я сел писать вам ответ Вадим еще не ответил поэтому не удержусь приведу
свой вариант. Хотя тот легче...
Главное на что стоит обратить внимание поиск не зависит от регистра, а чтобы зависел нужно удалить
две строки. В коде напротив них есть соответствующие комменты
Приложение: Переключить в обычный режим- procedure TForm1.Button1Click(Sender: TObject);
- var f:TextFile;
- s,s1:string;
- i:integer;
- begin
- AssignFile(f,'c:file.txt');
- Reset(f);
- while not eof(f) do
- Begin
- Readln(f,s);
- for i:=1 to length(s) do
- begin
- if not((s[i]='.')or (s[i]='!')or(s[i]='?'))
- then s1:=s1+s[i]
- else
- begin
-
-
- if ( Pos(Edit1.Text,s1)<>0)
- then
- begin
- memo1.Lines.Add(s1);
- s1:='';
- end;
- end;
- end;
- end;
- end;
 |
Ответ отправил: Anderson N.N (статус: 2-ой класс)
Время отправки: 23 декабря 2008, 03:21
Оценка за ответ: 5
Комментарий к оценке: Здравствуйте Anderson! Да, несмотря на то что вариант Вадима легче, для меня более понятным оказался именно ваш вариант.
благодарю!!!
|
Мини-форум вопроса
Всего сообщений: 0.
31 января 2011, 19:33: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|