![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удалить из файла кусок
Strate © (2007-04-16 18:23:00)Здравствуйте. Не подскажете как удалить из файла к примеру первые N байт. Кроме перезаписи может что существует?
Riply (2007-04-17 11:02:00) [1]> [4] SlymRO © (17.04.07 10:37)
>а если N не кратное размеру кластера? не научились еще адресовать полкластера
Разумеется, я подразумевала, что кратно :)
Но ведь там, скорее всего, надо не только изменить адрес,
но и еще что-то, чтобы ничего не испортить :) ?
Leonid Troyanovsky (2007-04-17 10:55:00) [2]
> Strate © (16.04.07 18:23)
> первые N байт. Кроме перезаписи может что существует?
procedure TForm1.Button1Click(Sender: TObject);
var
fs1, fs2: TFilestream;
fcount: Int64;
begin
fcount := 5;
fs1 := TFileStream.Create('file1.txt', fmOpenWrite or fmShareDenyWrite);
fs2 := TFileStream.Create('file1.txt', fmOpenRead or fmShareDenyRead);
fs2.Position := fcount;
fs1.CopyFrom(fs2, fs2.Size - fcount);
fs1.Size := fs1.Size - fcount;
fs1.Free;
fs2.Free;
end;
Но, если есть место на диске, то лучше не рисковать.
--
Regards, LVT.
SlymRO (2007-04-17 10:37:00) [3]Riply © (16.04.07 19:10) [2]
а если N не кратное размеру кластера? не научились еще адресовать полкластера
Loginov Dmitry (2007-04-16 22:45:00) [4]> Здравствуйте. Не подскажете как удалить из файла к примеру
> первые N байт. Кроме перезаписи может что существует?
Еще можешь в цикле сместить следующие байты на N байт в начало файла и обрезать файл на N байт.
Riply (2007-04-16 19:10:00) [5]Сейчас меня сравняют с землей за "несение бреда в публичном месте", но рискну спросить:
А если как-нибудь исхитриться и сделать так, чтобы "хвостик" одного из кластеров,
занятых файлом указывал не на следующий кластер, а на "послеследующий" ?
Amoeba (2007-04-16 18:33:00) [6]Ничего другого, кроме перезаписи в новый файл, не существует.