В FAQ не нашел, чем открывать файл для добавления записей в конец файла (если делать Rewrite, то файл, судя по описанию, уничтожается... Если Reset, то открывается только на чтение...)
Там же не нашел, как можно добавить запись не в конец файла, а на любое место внутри файла... На ум приходит только сохранить все записи после нужного места в другой файл (или массив), затем урезать исходный файл до этого места, добавить запись и дописать в конец все сохраненные записи... но это ж долго, если файл (очень) большой!
Кстати, было бы не плохо, если ответы на эти вопросы будут добавлены в FAQ...
в типизированный можно писать, когда он открыт при помощи reset.(перемещаешь указатель с помощью seek на конец и спокойно дописываешь)
в текстовый - нельзя.
а вот со вставкой в середину действительно проблематично получается.
var f:text;
s:string;
begin
assign(f,'tp.txt');
rewrite(f);
writeln(f,'1');
close(f);
append(f);
writeln(f,'2');
close(f);
reset(f);
while not eof(f) do
begin
readln(f,s);
writeln(s);
end;
close(f);
readln;
end.
to Bokul:
И, надеюсь, последний вопрос..
Допустим, я связал файловую переменную f с каким-то файлом на диске, имя которого указал пользователь... можно ли из файловой переменной f получить путь к этому файлу и его имя и аттрибуты?
Уточни, что ты имеешь в виду под "атрибутами"... Имя - легко получается...
Для НЕтекстовых файлов:
uses dos;
var f: file;
begin
assign(f, '01.txt'); reset(f, 1);
writeln('name = ', filerec(f).name); { <--- FileRec }
close(f);
end.
uses dos;
var f: text;
begin
assign(f, '01.txt'); reset(f);
writeln('name = ', textrec(f).name); { <--- TextRec }
close(f);
end.