Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.22;
Скачать: CL | DM;

Вниз

Чтение двоичного файла.   Найти похожие ветки 

 
Raiv ©   (2002-07-10 14:16) [0]

Как прочесть двоичный файл в динамический массив array of Char и использовать j-тый элемент этого массива.


 
Skier ©   (2002-07-10 14:29) [1]

>Raiv
А зачем динамический массив, есть же TFileStream ?


 
Raiv ©   (2002-07-10 14:34) [2]

Пример части кода
FSize:=FileSize(FromF);
SetLength(Buf,FSize);
.......
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);

Как прочитать из Buf[i] какое либо значение?
Просто Buf[10]:="a" - нельзя.


 
Skier ©   (2002-07-10 14:41) [3]

>Raiv


> Как прочитать из Buf[i] какое либо значение?
> Просто Buf[10]:="a" - нельзя.


Не понял ! Говоришь "прочитать", а сам делаешь присваивание...
Логика где ты ? :)


 
Raiv ©   (2002-07-10 14:46) [4]

Суть дела в том, что если я опишу так:
Buf: array [1..400000]of Char;
то нет никаких проблем:
a:=Buf[10] или наоборот Buf[15]:="C"
а вот если описать
Buf: array of Char;
.....
FSize:=FileSize(FromF);
SetLength(Buf,FSize);
......
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);

то черта лысого из этого массивы что вытащишь.


 
Eugene Lachinov ©   (2002-07-10 14:47) [5]

BlockRead(FromF, Pointer(Buf)^, FSize, NumRead);


 
Raiv ©   (2002-07-10 14:47) [6]

Суть дела в том, что если я опишу так:
Buf: array [1..400000]of Char;
то нет никаких проблем:
a:=Buf[10] или наоборот Buf[15]:="C"
а вот если описать
Buf: array of Char;
.....
FSize:=FileSize(FromF);
SetLength(Buf,FSize);
......
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);

то черта лысого из этого массивы что вытащишь.


 
Skier ©   (2002-07-10 14:50) [7]

>Raiv
Приведи, пожалуйста, полностью код чтения из файла.


 
Raiv ©   (2002-07-10 15:17) [8]

БОЛЬШОЕ БОЛЬШОЕ СПАСИБО! Все заработало - только Инет глючит. Провайдера пора на рее повесить.


 
McSimm ©   (2002-07-10 15:17) [9]

var Buf: array of Char;
F: File of Char;
FSize: Integer;
begin
AssignFile(F, "....");
Reset(F);
try
FSize := FileSize(F);
SetLength(Buf, FSize);
BlockRead(F, Buf[0], FSize)
finally
CloseFile(F)
end



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

Текущий архив: 2002.07.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
3-70607
denis_tkachov
2002-06-30 17:18
2002.07.22
TThread и TQuery


3-70585
juliasoft
2002-06-27 17:23
2002.07.22
Вопрос по FastReport


1-70727
Helen
2002-07-11 16:19
2002.07.22
Содание текстового файла с расширением отличным от *.txt


14-70908
lipskiy
2002-06-24 02:51
2002.07.22
Микропрограммки


6-70851
Alexej
2002-05-13 08:10
2002.07.22
Определение продолжительности подключения