Помощь - Поиск - Пользователи - Календарь
Полная версия: Файлы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Ksander
Задача: Добавьте в указанное место файла заданное количество записей начиная с указанного места другого файла.
xds
Жуть... smile.gif
Ksander
может кто нибудь попробует решить эту задачу,сам я ни за что не догадаюсь
Digitalator
NB: А можно ли использовать индексирование записей в файле? если да, то можно это сделать без использования всяких truncate и переписывания всего файла по первой вставки

А если нет, то примерно так делать надо..

Код

var f = file of ftype;
     temp, ins:^array[1..1] of ftype;
     fsize, spos, inssize, i: word;
begin
....
ins - вставляемые записи
inssize - к-во
inspos - номер записи начала вставки
....
fsize = filesize(f) div sizeof(ftype);
getmem(temp, (fsize-inspos+1)*sizeof(ftype))
seek(f, inspos-1);
for i:=1 to fsize-inspos do read(f, temp^[i]);
seek(f, spos-1);
truncate(f);
for i:=1 to inssize do write(f, ins^[i]);
for i:=1 to fsize-inspos do write(f, temp^[i]);
freemem(temp);
....
end;


подправьте где неправильно :p2:
Guest
почему такая несложная задача вызывает столько трудностей при её составлении
Digitalator
у кого она вызывает трудности? и почему задача несложная?
Она элементарная!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.