Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Удаление строки

Автор: Serega 29.12.2003 23:41

Здравствуй, народ.
Мне вот что интересно: Как удалить, например, последнюю строку из файла?

Автор: GLuk 29.12.2003 23:51

Под строкой в файле понимается текстовая строка, т.е. разделенная следующими байтами: 0Dh,0Ah??
Во-всяком случае, прочитать его в память, а оттуда уже и смотреть. Или читать в буфер, скажем байт 200 с конца файла. А потом обрезать файл до нужного размера...

Автор: Altair 4.01.2004 11:59

Вот Вам программа которая удалит любую по номеру строку

Код
procedure DelStrText(name: string; dels: string);
var
f1 : text;
f2 : text;
s : string;
Atr: word;
begin
ASSIGN(f1,name);
ASSIGN(f2,'TEXTFILE.DSF');
REWRITE(f2);
GETFATTR(f1,atr);
SetFAttr(f1,Hidden);
{$I-}
RESET(f1);
while not EOF(f1) do
begin
 readln(f1,s);
 If s<>DelS then writeln(f2,s)
end;
CLOSE(f1);
CLOSE(f2);
erase(f1);
rename(f2,name);
SetFAttr(f2,atr);
{$I+}
If IoResult<>0 then writeln('ERROR: ',IoResult)
end;
end.


после выполнения этой процедуры строка Dels "удалится"
можно изменив эту процедуру сделать так, что бы
она удаляла по номеру!