[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
pff.clan.su - Форум » Сайт » Флуд » Delphi, проще простого... (Нубский вопрос)
Delphi, проще простого...
EnforcerДата: Сб, 2009-10-31, 22:00 | Сообщение # 1
Инжинер
Группа: Модераторы
Сообщений: 1161
Награды: 9
Статус: Offline
Задача следующая:
есть файл (допустим exe)
необходимо прочесть его и если в нем найдется строка к примеру "HELLOWORLD" то... (дальше неважно вобщем что)
Вот этот поиск строки в файле...
Казалось бы легко и мне вобщемто стыдно задавать такой вопрос, однако с делфи я почти незнаком...

Гуглил, находил какието брутальные варианты ничё толком путнего ненашел...
В некоторых других языках ясное дело IF STRINGINSTR($FILE,"HELLOWORLD") then и нахрен никакого гемора, всё просто и понятно, а тут... В РОТ МНЕ НОГИ ))




Сообщение отредактировал Enforcer - Сб, 2009-10-31, 22:03
 
EnforcerДата: Сб, 2009-10-31, 23:35 | Сообщение # 2
Инжинер
Группа: Модераторы
Сообщений: 1161
Награды: 9
Статус: Offline
biggrin Хиххихи с максом мы написали вот такую вот глупую функцию:

Function FindWord(fname:string; word:string):boolean;
Var
position:integer;
f:textfile;
stroka:string;
Begin
AssignFile(f, fname);
Reset(f);
while not EOF(f) do
begin
Readln(f, stroka);
position := AnsiPos(word, stroka);
if position = 0 then FindWord:=false else FindWord:=true;
end;
CloseFile(f);
End;

И НИХРЕНА НЕ ПАШЕТ )))
if (FindWord(GetSystemVariable('mapfilename'), '***EX***')) then SendConsoleHCommand('echo LOL PROC WORKS');




Сообщение отредактировал Enforcer - Вс, 2009-11-01, 00:21
 
nurupoДата: Сб, 2009-10-31, 23:40 | Сообщение # 3
Форумозависим
Группа: Модератор Форума
Сообщений: 1124
Награды: 5
Статус: Offline
Я вообще-то писал

Code
Program FindWordInText;
Uses
    Crt;

    Function FindWord(fname, word:string):boolean;
    Var
       i, j:integer;
       f:text;
       stroka:string;
    Begin
      Assign(f, fname);
      Reset(f);
      while not EOF(f) do
      begin
        Readln(f, stroka);
        i:=1;
        for j:=0 to Length(stroka) do
        begin
          {Analizaciya algoritma Writeln('word = ', word,'; Length = ', Length(word),'; i = ', i);}
          if (stroka[j] = word[i])
            then
              Inc(i)
            else
              i:=1;
          if i - 1 = Length(word)
            then
              begin
                FindWord:=true;
                break;
              end;
        end;
      end;
      Close(f);
    End;

Var
   f, s:string;
Begin
    ClrScr;
    f := 'text.txt'; { - imya faila}
    s := 'Hello Word'; { - slovo}
    if FindWord(f, s) = true
       then
         Write('True')
       else
         Write('False');
    Readln;
End.

Ты хотя бы проверил переделанную версию под делфи?

Сообщение отредактировал Makc - Сб, 2009-10-31, 23:52
 
EnforcerДата: Сб, 2009-10-31, 23:41 | Сообщение # 4
Инжинер
Группа: Модераторы
Сообщений: 1161
Награды: 9
Статус: Offline
Ну я упростил и сделал под дэлфи...

 
nurupoДата: Сб, 2009-10-31, 23:50 | Сообщение # 5
Форумозависим
Группа: Модератор Форума
Сообщений: 1124
Награды: 5
Статус: Offline
кстати, у тебя код не экономный, будет меньше символов если написать

Code
if position = 0 then FindWord:=false else FindWord:=true;

я не придирчивый, но если у тебя вся bot.dll так написана, то это плохо

Сообщение отредактировал Makc - Сб, 2009-10-31, 23:50
 
EnforcerДата: Вс, 2009-11-01, 13:21 | Сообщение # 6
Инжинер
Группа: Модераторы
Сообщений: 1161
Награды: 9
Статус: Offline
Проблемы нет!, Бублик помог )

 
nurupoДата: Вс, 2009-11-08, 23:19 | Сообщение # 7
Форумозависим
Группа: Модератор Форума
Сообщений: 1124
Награды: 5
Статус: Offline
Эм... кто-нить, закройте тему biggrin

Сообщение отредактировал Makc - Вс, 2009-11-08, 23:20
 
pff.clan.su - Форум » Сайт » Флуд » Delphi, проще простого... (Нубский вопрос)
  • Страница 1 из 1
  • 1
Поиск: