Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.26;
Скачать: 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 вся ветка

Текущий архив: 2002.08.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.041 c
7-85277
Timon
2002-06-10 15:00
2002.08.26
CPL


3-84903
Nonam
2002-08-06 14:14
2002.08.26
Characterset for


14-85242
Chunya
2002-08-01 12:31
2002.08.26
Кто знает сайты с которых можно бесплатно скачать фильмы


6-85144
pfox
2002-06-14 23:07
2002.08.26
SMTP server


3-84891
Radimir
2002-08-06 10:35
2002.08.26
Как подставить имя таблицы через Select