Помощь - Поиск - Пользователи - Календарь
Полная версия: Работа с типизованными файлами
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
kramolnic
В FAQ не нашел, чем открывать файл для добавления записей в конец файла (если делать Rewrite, то файл, судя по описанию, уничтожается... Если Reset, то открывается только на чтение...)

Там же не нашел, как можно добавить запись не в конец файла, а на любое место внутри файла... На ум приходит только сохранить все записи после нужного места в другой файл (или массив), затем урезать исходный файл до этого места, добавить запись и дописать в конец все сохраненные записи... но это ж долго, если файл (очень) большой!

Кстати, было бы не плохо, если ответы на эти вопросы будут добавлены в FAQ...
мисс_граффити
в типизированный можно писать, когда он открыт при помощи reset.(перемещаешь указатель с помощью seek на конец и спокойно дописываешь)
в текстовый - нельзя.

а вот со вставкой в середину действительно проблематично получается.
Bokul
Цитата
в текстовый - нельзя.

blink.gif

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.



kramolnic
to Bokul:

Цитата(мисс_граффити @ 21.12.2006 1:00) *

в текстовый - нельзя.

полагаю, имелось в виду, что в текстовый нельзя дописывать при помощи Reset в отличие от типизованных файлов...

И спасибо за моментальный ответ! если честно, не мало удивлен give_rose.gif
мне прогу желательно к сегодняшнему утру сделать...
мисс_граффити
Цитата
полагаю, имелось в виду, что в текстовый нельзя дописывать при помощи Reset в отличие от типизованных файлов...

да, разумеется.

перефразирую:
в типизированный файл можно писать, когда он открыт при помощи reset. в текстовый файл при таком способе открытия - нельзя.

что-то у меня последнее время с русским языком серьезные проблемы... сокращаю фразы, в итоге никто не понимает, что хотела сказать.
kramolnic
И, надеюсь, последний вопрос..

Допустим, я связал файловую переменную f с каким-то файлом на диске, имя которого указал пользователь... можно ли из файловой переменной f получить путь к этому файлу и его имя и аттрибуты?
volvo
Уточни, что ты имеешь в виду под "атрибутами"... Имя - легко получается...

Для НЕтекстовых файлов:
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
Цитата(volvo @ 21.12.2006 11:50) *

Уточни, что ты имеешь в виду под "атрибутами"...

Ну, вообще говоря, мне надо было только имя узнать, а про аттрибуты я просто попутно спросил. А так, архивный/только чтение/скрытый и дату создания/изменения. Можно еще полный путь к файлу. Короче, вообще все, что можно о нем узнать...
volvo
Цитата
Короче, вообще все, что можно о нем узнать...
Нажми в IDE Паскаля Shift+F1, и найди в списке File-record, дабл-клик для просмотра топика, и ты получишь описание полей файлового типа... Это все, что можно узнать напрямую из файловой переменной...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.