Вниз
Скачать: CL | DM;

Текстовый файл, запись, поиск строки.   Найти похожие ветки 

← →
-=Spike=-   (2002-08-15 15:54) [0]

Всем привет.

Не поможете найти строку в текстовом (в моем случае в файле .BAT) файле?
Я создал вот такую процедуру:

procedure Read(FileName, Str: String);
var
F:TextFile;
begin
AssignFile(F, FileName);
FileMode := 0;
{$I-} Reset(F); {$I+}
if IOResult <> 0 then begin
ShowMessage("Ошибка открытия файла "+FileName);
Exit;
end;
while not EOF(F) do begin
ReadLn(F, Str);
end;
ShowMessage(Str);
CloseFile(F);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
Read("C:\Autoexec.bat","deltree /y c:\windows\temp\*.*");
end;


Как заставить её (процедуру) искать нужную мне строку (в данном случае: deltree /y c:\windows\temp\*.*)? Была попытка найти таким способом:

procedure Read(FileName, Str: String);
var
F:TextFile;
s:string;
count:word;
begin
AssignFile(F, FileName);
FileMode := 0;
{$I-} Reset(F); {$I+}
if IOResult <> 0 then begin
ShowMessage("Ошибка открытия файла "+FileName);
Exit; end;
s:=""; count:=0;
while not EOF(F) and (str <> s) do begin
ReadLn(F, s); inc(count);
end;
// ShowMessage(Str);
ShowMessage("искомая строка является "+IntToStr(count)+" строкой в файле");
CloseFile(F);
end;


Но при осутствии строки выдаеться сообщения, что строка найдена (и указываеться последняя строка).

И еще вопросик: Как заставить процедуру, представленную нижу, записывать с новой строки, если перед этим есть текст? А то иногда она (процедура) дописывает в конец существующей в файле строки.

procedure Write(FileName, Str: String);
var
F: TextFile;
begin
AssignFile(F, FileName);
FileMode := 0;
{$I-} Append(F); {$I+}
if IOResult <> 0 then begin
ShowMessage("Ошибка открытия файла "+FileName);
Exit;
end;
WriteLn(F, Str);
CloseFile(F);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
Write("C:\WINDOWS\Рабочий стол\Новая папка\1.bat","deltree /y c:\windows\temp\*.*");
end;


Спасибо за внимание.


← →
Странный Прохожий ©   (2002-08-15 16:03) [1]

Всё-таки проще для правки текстовых файлов использовать объекты класса TStringList. Попробуйте -- код станет прозрачным, понятным и рабочим... :)
А сравнивать строки ф-ей CompareStr()



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
14-85187
Пыжев Антон
2002-07-29 07:40
2002.08.26
Эмулятор Linux на Delphi


1-85092
anod
2002-08-14 11:48
2002.08.26
Что за сообщения такие


14-85235
Vagrant
2002-07-29 03:01
2002.08.26
REAL-TIME Дизайнер форм.


1-85046
Сергиус
2002-08-13 05:20
2002.08.26
ошибка при уничтожении DataModule


14-85244
Leha-neo
2002-07-30 18:51
2002.08.26
Где можно достать алгоритмы прослушивания тел. линий???




   Наверх