Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
7-85265
irmantukas
2002-06-14 02:01
2002.08.26
АОН


14-85193
Igit
2002-07-29 18:52
2002.08.26
Всем живущим в москве.


1-85067
agafon
2002-08-13 19:51
2002.08.26
сразу много вопросов:


14-85190
Дремучий
2002-07-30 11:10
2002.08.26
Не хочу показаться озабоченым... но хотелось бы узнать...


1-85088
TiredDmitry
2002-08-14 03:31
2002.08.26
Чё за EDITS.DCU.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский