![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как урезать файл TFileStream?
arhis © (2004-07-05 17:49:00)Можно-ли как нибудь уменьшить размер файла через TFileStream, не перезаписывая его полностью.
Mim1 (2004-07-06 07:49:00) [1]
> [7] Ega23 © (05.07.04 19:13)
Угу, я знаю. Чтобы я без вашего замечания делал. Однако прочитав написанное мной ранее вы могли бы понять что я знаю что вопрос был про TStream. Однако прведенная цитата была из раздлеа справки про TFileStream. Однако если бы и ее вы прочли внимательно (вторую часть) то поняли бы что и она относится к TFileStream.
> [8] Dimaxx (05.07.04 20:28)
For example
uses classes;
var fs:tfilestream;
begin
fs := tfilestream.create('test',fmcreate);
fs.write('alphatest',9);
fs.position := 0;
fs.write('beta ',5);
fs.free;
end.
В файле получаем "beta test"
Dimaxx (2004-07-05 20:28:00) [2]При записи в TFileStream теряются все данные от текущего указателя до конца файла. Если последняя запись была, скажем, размером 100 байт, то при записи на нее 80 байт все остальные 20 уйдут в небытие. Если нельзя терять, то используй BlocWrite.
Ega23 (2004-07-05 19:13:00) [3]TStream
А вопрос был про TFileStream
Mim1 (2004-07-05 19:09:00) [4]
> но в хелпе написано, что такой вариант результата не даст.
Если вы про
Setting the Size property of TStream does nothing.
То далее следует.
Some descendants of TStream override this property to allow applications to change the size of the resource accessed using the stream.
Ega23 (2004-07-05 17:57:00) [5]См. Mim1 © (05.07.04 17:55) [2]
arhis (2004-07-05 17:56:00) [6]2 Mim1
Я конечно так попробую, но в хелпе написано, что такой вариант результата не даст.
Mim1 (2004-07-05 17:55:00) [7]
With Tfilestream.create('file1',fmopenwrite) do
try
size := 100;
finally
free;
end;
arhis (2004-07-05 17:55:00) [8]У меня есть большой файл, состоит из разных по размеру записей. Гружу его и перезаписываю последнюю запись, но после обработки она становится короче, как мне удалить старые данные поверх которых не легла измененная запись, ведь в конце у меня приписывается индекс записей.
Ega23 (2004-07-05 17:52:00) [9]Переведи.