Вопрос № 173544: Здравствуйте эксперты. Не могли бы вы мне помочь с кодом программы? Код не мой и написан, примерно, в 2008 и не полностью (не было указано var). С автором связаться не удалось. var написал с нуля, но в нем остались кое-каким ошибки: [Error] Uni...
Вопрос № 173544:
Здравствуйте эксперты. Не могли бы вы мне помочь с кодом программы? Код не мой и написан, примерно, в 2008 и не полностью (не было указано var). С автором связаться не удалось. var написал с нуля, но в нем остались кое-каким ошибки: [Error] Unit1.pas(144): Type of expression must be BOOLEAN в строке if finded then Как это исправить? И второй вопрос: Необходимо убрать все лишнее, кроме просто поиска в строке слова 'ISO', т.е. убрать отрезание до слова, после (см. комментарии в
коде). И еще в комментариях указано - // Ищет по 1 или нескольким критериям с разделением "//" а где это указывается? Где можно указать несколько критериев? Заранее спасибо.
Отвечает Евгений/Genia007/, Практикант :
Здравствуйте, marader2002. Вот сделал ка Вы хотели просто поиск слова в строке. Сделал два вида поиска: ищет просто наличие любого из двух слов в строке и ищет наличие двух слов в стоке. Слова вводятся в Memo, каждое слово с новой строки. Вывод результата тоже в Memo.
Код:
// Ищет слова
из мемо, каждое слово в новой строке procedure TForm1.Button1Click(Sender: TObject); var F: TextFile; l, n: integer; t: string; begin t:= ''; l:= 0; //сбрасываем счетчики if not OpenDialog1.Execute then Exit; // Если файл не выбран, то выходим // Иначе, пытаемся открыть файл: AssignFile(F,Form1.OpenDialog1.FileName); // Связываем файл с переменной F Reset(F); //открываем файл while not eof(F) do //читаем
построчно из файла, пока не дойдем до конца begin //это и есть обработка файла readln(F, t); //если строковая переменная пустая, прочитали строку в строковую переменную inc(l); //увеличили счетчик прочитанных строк n:= pos(Memo1.Lines.Strings[0], t); if (n <> 0) then begin Memo1.Lines.Add('Слово ' + Memo1.Lines.Strings[0] + ' найдено в строке ' + inttostr(l)); end; n:= pos(Memo1.Lines.Strings[1],
t); if (n <> 0) then begin Memo1.Lines.Add('Слово ' + Memo1.Lines.Strings[1] + ' найдено в строке ' + inttostr(l)); end; end; CloseFile(F); //закрываем файловую переменную end;
// Ищет оба слова из мемо, каждое слово в новой строке procedure TForm1.Button2Click(Sender: TObject); var F: TextFile; l, n, k: integer; t: string; begin t:= '';
n:= 0; k:= 0; l:= 0; //сбрасываем счетчики if not OpenDialog1.Execute then Exit; // Если файл не выбран, то выходим // Иначе, пытаемся открыть файл: AssignFile(F,Form1.OpenDialog1.FileName); // Связываем файл с переменной F Reset(F); //открываем файл while not eof(F) do //читаем построчно из файла, пока не дойдем до конца begin //это и есть обработка файла readln(F, t); //если строковая переменная пустая, прочитали строку в строковую переменную inc(l);
//увеличили счетчик прочитанных строк n:= pos(Memo1.Lines.Strings[0], t); k:= pos(Memo1.Lines.Strings[1], t); if (n <> 0) AND (k <> 0) then Memo1.Lines.Add('Слово ' + Memo1.Lines.Strings[0] + ' и слово ' + Memo1.Lines.Strings[1] + ' найдены в строке ' + inttostr(l)); end; CloseFile(F); //закрываем файловую переменную end;
procedure TForm1.Button
3Click(Sender: TObject); begin Memo1.Clear; // Отчистить мемо end;
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.