Вниз
Скачать: CL | DM;

TFileStream?   Найти похожие ветки 

← →
ZasranYolidza   (2003-10-02 20:22) [0]

Доброе время суток Мастера!
Помогите разобратся, как работать с потоками, а именно с TFileStream?
Дело в том что мне необходимо считывать данные из файла побайтно, что занимает огромное количество времени при использовании AssignFile..CloseFile, при использовании TFileStream процесс ускоряется, но осуществить доступ к байтам я сумел лиш через копибуффер (фактически это тоже повторение AssignFile...). Может есть возможность работать напрямую?


← →
-=x77=-   (2003-10-02 20:27) [1]

А почему нельзя считать данные целиком, а потом побайтно работать с ними уже из памяти? Возьмите TMemoryStream, сделайте LoadFromFile, а потом уже из памяти читайте побайтно: MyMemoryStream.Read (buf, 1);


← →
-=x77=-   (2003-10-02 20:27) [2]

А почему нельзя считать данные целиком, а потом побайтно работать с ними уже из памяти? Возьмите TMemoryStream, сделайте LoadFromFile, а потом уже из памяти читайте побайтно: MyMemoryStream.Read (buf, 1);


← →
Юрий Федоров ©   (2003-10-02 20:56) [3]

>>-=x77=- (02.10.03 20:27) [2]
А смысл ( TMemoryStream)? Все равно операционка все закеширует в оперативку...
Лучше просто считать из TFileStream в array of byte, а потом с этим массивом работать поэлементно


← →
DeScriptor ©   (2003-10-02 23:43) [4]

Я всегда делал так:

procedure DoSomething();
var DataBlock: array of byte;
DataFile: file;
succ:integer;

begin
AssignFile(DataFile,"filename.ext");
Reset(DataFile,1);
SetLength(DataBlock,65536);
repeat
BlockRead(DataFile,DataBlock[0],65563,succ);
тут происходит то, что вам нужно
until EOF(DataFile);
CloseFile(DataFile);
end;


Надеюсь, вам это поможет...


← →
Amoeba   (2003-10-03 12:38) [5]

А может просто отобразить этот файл в память (MemoryMapped File) и далее просто обращаться к нему как к байтовому массиву в памяти, хотя на самом деле все остается на диске. Единственно придется вызвать несколько API функций.


← →
Serginio1   (2003-10-03 14:13) [6]

Используй кольцевой буффер. Пример
http://www.1c.hippo.ru/cgi-bin/predownl.cgi?id=2019



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.015 c
14-51502
BillyJeans
2003-09-27 14:57
2003.10.16
как изменить свой профиль?


3-51083
Filat
2003-09-25 21:38
2003.10.16
RxDBLookupCombo - как сделать чтобы он был как DBEdit?


14-51407
Mike Kouzmine
2003-09-25 15:32
2003.10.16
Скончался известный тележурналист и путешественник Юрий Сенкевич


14-51472
stone
2003-09-29 13:14
2003.10.16
Поломался Интернет :)


14-51438
konstantinov
2003-09-30 09:37
2003.10.16
Где в Москве рынки б у железа.




   Наверх