Главная страница
    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.45 MB
Время: 0.006 c
14-85196
AL2002
2002-07-29 14:43
2002.08.26
Просьба оценить


1-85098
Malder
2002-08-14 20:57
2002.08.26
Динамические масивы


1-85102
einsam
2002-08-15 00:56
2002.08.26
процедурные типы


14-85219
AL2002
2002-07-29 18:06
2002.08.26
Двубайтовые числа


3-84917
petyun
2002-08-06 15:57
2002.08.26
Ошибки SQL Midas





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский