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

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

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

> Работа с типизованными файлами, как сделать дозапись файла и вставку записей?
kramolnic
сообщение 21.12.2006 0:56
Сообщение #1


Новичок
*

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

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


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

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

Кстати, было бы не плохо, если ответы на эти вопросы будут добавлены в FAQ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 8)
мисс_граффити
сообщение 21.12.2006 1:00
Сообщение #2


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

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

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


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

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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bokul
сообщение 21.12.2006 1:11
Сообщение #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 
 К началу страницы 
+ Ответить 
kramolnic
сообщение 21.12.2006 1:16
Сообщение #4


Новичок
*

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

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


to Bokul:

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

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

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

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

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


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

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

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


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

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

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

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


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


Новичок
*

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

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


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

Допустим, я связал файловую переменную f с каким-то файлом на диске, имя которого указал пользователь... можно ли из файловой переменной f получить путь к этому файлу и его имя и аттрибуты?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.12.2006 11:50
Сообщение #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.
 К началу страницы 
+ Ответить 
kramolnic
сообщение 21.12.2006 20:22
Сообщение #8


Новичок
*

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

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


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

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

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


Гость






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

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

 



- Текстовая версия 30.07.2025 10:26
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"