| 
| 
 | Вопрос # 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="количество слов").
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |