Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.17;
Скачать: CL | DM;

Вниз

Вопрос по работе с 16-ичными файлами   Найти похожие ветки 

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

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

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

Спасибо!


 
PKT   (2002-10-08 03:25) [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 почитайте.



Страницы: 1 вся ветка

Текущий архив: 2002.10.17;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.016 c
1-56101
tenzor
2002-10-08 23:25
2002.10.17
Русский текст в консольных приложения


3-56011
Evladar
2002-09-26 17:00
2002.10.17
---|Ветка была без названия|---


4-56407
SPeller
2002-09-04 10:39
2002.10.17
Заполнить структуру BITMAPFILEHEADER


4-56413
Севостьянов Игорь
2002-09-04 22:33
2002.10.17
Как получить список имен процедур DLL


7-56354
Mnch
2002-08-06 17:14
2002.10.17
Как сделать свою прогу e-mail клиентом по умолчанию?