Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
ВнизТекстовый файл, запись, поиск строки. Найти похожие ветки
← →
-=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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c