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

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

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

Delphi.int.ru Expert

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

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

#   

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


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

Подробнее »



Вопрос # 3 376

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Помогите написать метод "Поиск слова"для программы в Delphi 7.
В этом методе надо передать выбранное слово из ComboBox1 в Edit1 и проверить наличие слова в каждой строке компонента memo1. При обнаружении искомого слова счетчик слов увеличивается на 1 и результат вывести в StatusBar1.


procedure ___________________(Sender: TObject);
var _______________________
______________________________
begin
___________________________________________________
___________________________________________________
___________________________________________________
________________________________________________
___________________________________________________

end;
___________________________________________________

end;

Спиридонов Данил Сергеевич / Karayan Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Спиридонов Данил Сергеевич / Karayan (статус: Посетитель)
Вопрос отправлен: 7 ноября 2009, 08:48
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Спиридонов Данил Сергеевич / Karayan!
ну где то так

var i, k:integer;
begin
  //передадим слово
  Edit1.text := Combobox1.items[Combobox1.itemindex];
  k := 0;
  //считаем слова
  for i := 0 to memo1.lines.count - 1 do
    if pos (edit1.text, memo1.lines[i]) <> 0 then k := k + 1;
  StatusBar1.SimpleText := Inttostr(k);
end;
Правда у этой задачи чуточку размазанное условие. Сказано "проверить наличие", но "считать слово". То есть не понятно, если в строке два раза употребляется заданное слово, то считать его за два или за один. В вышеприведенном решении будет считать за одно. Считать за два будет немного сложнее.
И второй недостаток данного решения - он ищет вхождения. то есть если строка такая
"это пример строки"
а задали найти слово "рим", то оно найдется.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 7 ноября 2009, 11:17


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

Всего сообщений: 2; последнее сообщение — 9 ноября 2009, 11:08; участников в обсуждении: 2.
Жикльор

Жикльор (статус: 5-ый класс), 7 ноября 2009, 11:45 [#1]:

Дайте более четкое условие и мы поможем.
Если бы строители строили дома так, как программисты пишут программы, то первый же дятел уничтожил бы цивилизацию.
Спиридонов Данил Сергеевич / Karayan

Спиридонов Данил Сергеевич / Karayan (статус: Посетитель), 9 ноября 2009, 11:08 [#2]:

Условие программы. Выберите произвольную программу на языке Object Pascal из вашего каталога программ (в Memo1). Создайте словарь из слов, наличие которых надо проверить в тексте программы (ComboBox1). Результатом работы программы должно быть найденное количество слов в выбранной для анализа програм-ме (StatusBar1.panel[1]).
Написанная часть программы:

procedure TForm1.N4Click(Sender: TObject);
begin
Close; // Метод "Закрытие программы";
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
Combobox1.Clear; // Метод "Создание формы";
Edit1.Clear;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[0].Text:=datetimetostr(now); // Вывод времени и даты;
end;

procedure TForm1.N2Click(Sender: TObject);
var fullfilename:string; // Метод "Открытие файла";
begin
If OpenDialog1.Execute Then
Begin
Memo1.Lines.LoadFromFile(OpenDialog1.FileName); // открытие файла типа *.pas;
End;
statusbar1.Panels[2].Text:=OpenDialog1.FileName; // вывод полного имени файла;
end;

procedure TForm1.N1Click(Sender: TObject);
var i:integer;
F:textfile;
begin
If not OpenDialog1.Execute then // Если не удалось открыть диалог выйти из процедуры
exit;
AssignFile(F,OpenDialog1.FileName + '.txt'); // Связываем файловую переменную f с именем файла из диалога
Rewrite(F); // Создаём новый файл
For i:= 0 to Combobox1.Items.Count - 1 do // Перебираем все строки комбобокса
Writeln(F, Combobox1.Items.Strings[i]); // Записываем в файл строку из комбобокса
CloseFile(F);
end;
Нужно написать метод "Поск слова"
1. Выбрать из ComboBox1 слово и вставить в Edit1.
2. Проверить наличия слова из Edit1 в каждой строке Memo1.
3. При наличии искомого слова счетчик слов увеличиванется на 1. Результат вывести в StatusBar1.panel[1] (Count="количество слов").

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

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:52
Выполнено за 0.02 сек.