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

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

Удалить из файла кусок


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]

Ничего другого, кроме перезаписи в новый файл, не существует.


Наверх

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