|
Вопрос # 3 376/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Помогите написать метод "Поиск слова"для программы в Delphi 7.
В этом методе надо передать выбранное слово из ComboBox1 в Edit1 и проверить наличие слова в каждой строке компонента memo1. При обнаружении искомого слова счетчик слов увеличивается на 1 и результат вывести в StatusBar1.
procedure ___________________(Sender: TObject);
var _______________________
______________________________
begin
___________________________________________________
___________________________________________________
___________________________________________________
________________________________________________
___________________________________________________
end;
___________________________________________________
end;
Ответ #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 (статус: Посетитель), 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="количество слов").
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|