поиск слова в файле

Ответить
virtuhay266
Сообщения: 1
Зарегистрирован: 28 май 2009, 09:47

Мне по заданию нужно искать слово в файле, я воспользовался функцией POS, но при тестировании обнаружилось, что я не учел, что функция не найдет слово, если в нем будут символы в разных регистрах! Получается, что слова одинаковые, а набор символов разный.
Что мне делать?
вот моя функция

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var
  j:integer;
  s:ansistring;
  s1,s2:ansistring;
  f:textfile;
begin
  if pos(' ',edit1.Text)=0
    then
      if length(edit1.Text)<>0
        then
          begin
            s2:='Строки начинаюшиеся со слова '+edit1.Text;
            label3.Caption:=s2;
            s1:=edit1.Text;
            j:=0;
            AssignFile(F,OpenDialog1.FileName);
            reset(f);
            while not(eof(f)) do
            begin
              j:=j+1;
              readln(f,s);
              if (pos(s1,s)=1)and((s[length(s1)+1]=' ')or(s[length(s1)+1]=s1[length(s1)+1]))
                then
                  label3.Caption:=label3.Caption+' '+inttostr(j);
            end;
            CloseFile(f);
            if s2=label3.Caption
              then
                label3.Caption:='В файле не строк начинающихся со слова '+edit1.Text;

          end
        else showmessage('Введите слово для поиска')
    else  showmessage('Слово не должно содержать пробелов')
end;
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
сам спросил - сам ответил
pos(AnsiUpperCase(s1),AnsiUpperCase(s))
{спасибо добрым людям}
Ответить