![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обрезать длину файла при перезаписи
dramadol © (2008-02-24 16:47:00)Делаю так:
h, len: Integer;
buff: PChar;
begin
h:= FileOpen(FileName, fmOpenReadWrite);
if h < 1 then exit;
len:= FileSeek(h, 0, 2); FileSeek(h, 0, 0);
GetMem(buff, Len);
FileRead(h, buff^, Len);
FileSeek(h, 0, 0);
FileWrite(h, buff^, Len div 2);
FileClose(h);
это утрированый пример. думал и длина станет в два раза меньше, но длина остается прежней.
Вспомнил ассемблер и после записи попытался нулевой длины записать:
FileWrite(h, buff^, 0);
- результат тот же.
не подскажите как в имеющийся файл данными методами записать меньший объём обрезав соответственно длину?
можно было бы закрывать файл, потом создавать и писать но это как то некрасиво...
dramadol (2008-02-24 17:08:00) [1]точно) сенкс!
век живи - век учись...
Плохиш (2008-02-24 16:55:00) [2]SetEndOfFile