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

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

Форум «Всё о Паскале» _ Задачи _ Запись в текстовый файл.

Автор: 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

код не важен, за идею спасибо.