Автор: ACC 25.07.2006 2:38
помогите плз, как записать некую информацию в текстовый файл? только обязательное условие - запись не в конец файла через простой append, а в i-тую строчку. (i известно).
и ещё - как удалить из текст. файла строку под номером i?
Автор: Bokul 25.07.2006 3:41
В обеих случаях надо создавать временный файл или массив, а потом переписывать исходный файл.
Цитата
запись не в конец файла через простой append, а в i-тую строчку
Читаешь файл построчно и пишешь каждую строку в новый (временный) файл, при этом надо завести переменную-счетчик прочитанных строк, когда она будит равнеться номеру строчки, какую надо добавить, то просто записываешь ее во временный файл, и потом меняешь исходный файл на временный.
С удалениям тоже самое, только вместо записи, просто пропусаешь.
Код
i:=0;
while not (eof(f)) do
begin
inc(i);
readln(f,s);
if i<>DeleteNumber then
writeln(TempFile,s)
end;
код не проверен, главное - идея.
В FAQ есть пример http://forum.pascal.net.ru/index.php?showtopic=3584
Автор: ACC 27.07.2006 1:57
код не важен, за идею спасибо.