Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 226

/ вопрос решён /

Здравствуйте уважаемые эксперты! Помогите написать программу, в которой используется MDI-окна (текстовые). Дан текстовый файл с каким-то текстом на диске С:\ . На форме в окно TEdit вводится некоторое слово, а по нажатии TBitton в окне TMemo Выводятся именно те предложения текста, которые содержат данное слово.
Подскажите как и с помощью каких компонентов это реализовать, не хочется перед преподом полным идиотом выглядеть!

Darchiev Marat Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: 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!
Вот еще один вариант ! Когда я сел писать вам ответ Вадим еще не ответил поэтому не удержусь приведу
свой вариант. Хотя тот легче...
Главное на что стоит обратить внимание поиск не зависит от регистра, а чтобы зависел нужно удалить
две строки. В коде напротив них есть соответствующие комменты

Приложение:
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var f:TextFile;
  3. s,s1:string;
  4. i:integer;
  5. begin
  6. AssignFile(f,'c:file.txt');
  7. Reset(f);
  8. while not eof(f) do
  9. Begin
  10. Readln(f,s);
  11. for i:=1 to length(s) do
  12. begin
  13. if not((s[i]='.')or (s[i]='!')or(s[i]='?'))
  14. then s1:=s1+s[i]
  15. else
  16. begin
  17.  
  18.  
  19. if ( Pos(Edit1.Text,s1)<>0)
  20. then
  21. begin
  22. memo1.Lines.Add(s1);
  23. s1:='';
  24. end;
  25. end;
  26. end;
  27. end;
  28. end;


Ответ отправил: Anderson N.N (статус: 2-ой класс)
Время отправки: 23 декабря 2008, 03:21
Оценка за ответ: 5

Комментарий к оценке: Здравствуйте Anderson! Да, несмотря на то что вариант Вадима легче, для меня более понятным оказался именно ваш вариант.
благодарю!!!

Мини-форум вопроса

Всего сообщений: 0.

31 января 2011, 19:33: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 10 апреля 2020, 03:49
Выполнено за 0.01 сек.
Рейтинг@Mail.ru