В FAQ не нашел, чем открывать файл для добавления записей в конец файла (если делать Rewrite, то файл, судя по описанию, уничтожается... Если Reset, то открывается только на чтение...)
Там же не нашел, как можно добавить запись не в конец файла, а на любое место внутри файла... На ум приходит только сохранить все записи после нужного места в другой файл (или массив), затем урезать исходный файл до этого места, добавить запись и дописать в конец все сохраненные записи... но это ж долго, если файл (очень) большой!
Кстати, было бы не плохо, если ответы на эти вопросы будут добавлены в FAQ...
мисс_граффити
21.12.2006 5:00
в типизированный можно писать, когда он открыт при помощи reset.(перемещаешь указатель с помощью seek на конец и спокойно дописываешь) в текстовый - нельзя.
а вот со вставкой в середину действительно проблематично получается.
полагаю, имелось в виду, что в текстовый нельзя дописывать при помощи Reset в отличие от типизованных файлов...
И спасибо за моментальный ответ! если честно, не мало удивлен мне прогу желательно к сегодняшнему утру сделать...
мисс_граффити
21.12.2006 5:25
Цитата
полагаю, имелось в виду, что в текстовый нельзя дописывать при помощи Reset в отличие от типизованных файлов...
да, разумеется.
перефразирую: в типизированный файл можно писать, когда он открыт при помощи reset. в текстовый файл при таком способе открытия - нельзя.
что-то у меня последнее время с русским языком серьезные проблемы... сокращаю фразы, в итоге никто не понимает, что хотела сказать.
kramolnic
21.12.2006 6:43
И, надеюсь, последний вопрос..
Допустим, я связал файловую переменную f с каким-то файлом на диске, имя которого указал пользователь... можно ли из файловой переменной f получить путь к этому файлу и его имя и аттрибуты?
volvo
21.12.2006 15:50
Уточни, что ты имеешь в виду под "атрибутами"... Имя - легко получается...
Для НЕтекстовых файлов:
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.
kramolnic
22.12.2006 0:22
Цитата(volvo @ 21.12.2006 11:50)
Уточни, что ты имеешь в виду под "атрибутами"...
Ну, вообще говоря, мне надо было только имя узнать, а про аттрибуты я просто попутно спросил. А так, архивный/только чтение/скрытый и дату создания/изменения. Можно еще полный путь к файлу. Короче, вообще все, что можно о нем узнать...
volvo
22.12.2006 0:52
Цитата
Короче, вообще все, что можно о нем узнать...
Нажми в IDE Паскаля Shift+F1, и найди в списке File-record, дабл-клик для просмотра топика, и ты получишь описание полей файлового типа... Это все, что можно узнать напрямую из файловой переменной...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.