Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Вниз

Как урезать файл TFileStream?   Найти похожие ветки 

 
arhis   (2004-07-05 17:49) [0]

Можно-ли как нибудь уменьшить размер файла через TFileStream, не перезаписывая его полностью.


 
Ega23 ©   (2004-07-05 17:52) [1]

Переведи.


 
Mim1 ©   (2004-07-05 17:55) [2]

With Tfilestream.create("file1",fmopenwrite) do
 try
   size := 100;
 finally
   free;
 end;


 
arhis   (2004-07-05 17:55) [3]

У меня есть большой файл, состоит из разных по размеру записей. Гружу его и перезаписываю последнюю запись, но после обработки она становится короче, как мне удалить старые данные поверх которых не легла измененная запись, ведь в конце у меня приписывается индекс записей.


 
arhis   (2004-07-05 17:56) [4]

2 Mim1
Я конечно так попробую, но в хелпе написано, что такой вариант результата не даст.


 
Ega23 ©   (2004-07-05 17:57) [5]

См. Mim1 ©   (05.07.04 17:55) [2]


 
Mim1 ©   (2004-07-05 19:09) [6]


> но в хелпе написано, что такой вариант результата не даст.

Если вы про
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 19:13) [7]

TStream

А вопрос был про TFileStream


 
Dimaxx   (2004-07-05 20:28) [8]

При записи в TFileStream теряются все данные от текущего указателя до конца файла. Если последняя запись была, скажем, размером 100 байт, то при записи на нее 80 байт все остальные 20 уйдут в небытие. Если нельзя терять, то используй BlocWrite.


 
Mim1 ©   (2004-07-06 07:49) [9]


> [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"



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

Форум: "Основная";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.032 c
9-1080221635
laa
2004-03-25 16:33
2004.07.18
как спрайты из TDXImageList скопировать в TBitMap


14-1088102829
Knight
2004-06-24 22:47
2004.07.18
Моторола C350... что, правда, брать не стоит?


1-1088750036
pesh
2004-07-02 10:33
2004.07.18
Help по компонетам Office


14-1088583423
AlexG
2004-06-30 12:17
2004.07.18
Символ "а" с двумя точками сверху в HTML


3-1087447779
cardinall
2004-06-17 08:49
2004.07.18
Как объединить две ячейки в Excel программно?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский