Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по работе с 16-ичными файлами [D6, Win95/98]


Новенький в Делфи ©   (2002-10-08 01:59:00) 

Надеюсь тему сформулировал верно, теперь бы ещё вопрос...

Есть файл, нужно в середину файла записать какое либо значение, но не поверх, а сдвинуть все записи от определённой позиции в лево и записать в этой позиции своё значение.
И обратная функция, удаление того значение, и сдвиг обратно.

Спасибо!


PKT   (2002-10-08 03:25:00) [1]

var
RecPosition: Integer;
F: File;
Buf: Pointer;
L: Integer;
begin
AssignFile(F, FileName);
Reset(F, 1);
L := FileSize(F);
RecPosition := L div 2; //"середина" файла
GetMem(Buf, L - RecPosition); //выделяем буфер
BlockRead(F, Buf^, L - RecPosition); //читаем вторую половину файла
Seek(F, RecPosition); //возвращаемся в середину
BlockWrite(F, Kakoe_to_Znacheniye, SizeOf(Kakoe_to_Znacheniye));
BlockWrite(F, Buf^, L - RecPosition); //сохраняем вторую половину файла
CloseFile(F);
FreeMem(Buf, L - RecPosition);
end;

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо