IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Работа с типизованными файлами, как сделать дозапись файла и вставку записей?
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


В FAQ не нашел, чем открывать файл для добавления записей в конец файла (если делать Rewrite, то файл, судя по описанию, уничтожается... Если Reset, то открывается только на чтение...)

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

Кстати, было бы не плохо, если ответы на эти вопросы будут добавлены в FAQ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


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

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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


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

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.





--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


to Bokul:

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

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

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

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

Сообщение отредактировано: kramolnic -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


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

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

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

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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


И, надеюсь, последний вопрос..

Допустим, я связал файловую переменную f с каким-то файлом на диске, имя которого указал пользователь... можно ли из файловой переменной f получить путь к этому файлу и его имя и аттрибуты?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Уточни, что ты имеешь в виду под "атрибутами"... Имя - легко получается...

Для НЕтекстовых файлов:
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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Цитата(volvo @ 21.12.2006 11:50) *

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

Ну, вообще говоря, мне надо было только имя узнать, а про аттрибуты я просто попутно спросил. А так, архивный/только чтение/скрытый и дату создания/изменения. Можно еще полный путь к файлу. Короче, вообще все, что можно о нем узнать...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






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

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 5.10.2024 9:16
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name