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

Вниз

Чтение из файла с помощью TFileStream...   Найти похожие ветки 

 
xn0bys   (2003-01-24 10:50) [0]

Дамы и Господа,

...
Var Buf2 : PByteArray;
...
Procedure Create;
begin
GetMem(Buf2,Size);
end;

function readbyte(num:integer):byte;
begin
Result:=Buf2^[num];
end;

Procedure ReadFromFile;
Var buf :PByteArray;
Stream : TFileStream;
begin
Stream.Create("zzz",fmOpenRead);
Try
GetMem(Buf,Size);
Try
Stream.Read(Buf^,Size)
For i:=0 to Size-1 do Buf2^[i]:=Buf[i];
finally
freeMem(Buf);
end;
finally
Stream.free;
end;
end;


Вот, если делаю так ^^^, то function readbyte(num:integer):byte;
возвращяет неверное значение, а если вот так:


Procedure ReadFromFile;
Var buf :PByteArray;
F : File;
begin
AssignFile(F,"zzz");
Reset(F,1);
Try
GetMem(Buf,Size);
Try
BlockRead(F,Buf^,Size)
For i:=0 to Size-1 do Buf2^[i]:=Buf[i];
finally
freeMem(Buf);
end;
finally
CloseFile(F);
end;
end;


To function readbyte(num:integer):byte;
Работает правильно!
Причём: в отладчике (Watches) на Buf^ показывает всё правильно в обоих случаях!!!

ВОТ! Может кто знает как?


 
xn0bys   (2003-01-24 11:04) [1]

SORRY, ошибочка вышла

Stream.Create читать как Stream:=TFileStream.Create



 
xn0bys   (2003-01-24 11:17) [2]


> Причём: в отладчике (Watches) на Buf^ показывает всё правильно
> в обоих случаях!!!

Добавлю: И Buf2^ тоже показывает в отладчике все правильно!!!!!


 
xn0bys   (2003-01-24 11:30) [3]

Пример вызова ReadByte:

...
procedure setpoint(k,x,y:integer);
Var pl:PByteArray;
begin
pl:=Image1.Picture.Bitmap.Scanline[y];
For i:=0 to k do
pl[i].r:=readbyte(x);
end;
...

Надеюсь понятно...


 
Smithson   (2003-01-24 11:31) [4]

Масса ошибок. Нет контроля выхода за раницы массивов. И что за присвоение Buf2^[i]:=Buf[i]; ?


 
xn0bys   (2003-01-24 11:31) [5]

Пример вызова ReadByte:

...
procedure setpoint(k,x,y:integer);
Var pl:PByteArray;
begin
pl:=Image1.Picture.Bitmap.Scanline[y];
For i:=0 to k do
pl[i].r:=readbyte(x);
end;
...

Надеюсь понятно...


 
xn0bys   (2003-01-24 11:33) [6]

Smithson

Ну что вы все придираетесь, на память писал, факт в том что вторая процедура readFromFile работает, а первая НЕТ!!!

В чём загвозда?
Stream.ReadBuffer(Buf^,Size); - тоже не помагает...


 
Separator   (2003-01-24 11:33) [7]

Код вобще не правильно написан


 
Smithson   (2003-01-24 11:36) [8]

Цитировать приблизительно нельзя. Можно либо цитировать, лиюо пересказывать. Отлаживать пересказанный код невозможно. Посему я не придираюсь, а указываю на ляпы. Если в действительности их нет, то стоит приводит в вопросе цитату (не)работающего кода, не его пересказ.


 
Anatoly Podgoretsky   (2003-01-24 11:36) [9]

Сплошная ошибка


 
Anatoly Podgoretsky   (2003-01-24 11:40) [10]

xn0bys © (24.01.03 11:33)
А ты не на память, ты подлинный код преъяви, зачем обсуждать не тот код.


 
xn0bys   (2003-01-24 11:55) [11]

ТЕМА ЗАКРЫТА, не буду я TFileStream использовать, может когда-нить в будущем.

Все Пока....



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

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

Наверх





Память: 0.47 MB
Время: 0.009 c
14-5271
OlDemon
2003-01-17 11:24
2003.02.03
UPS


1-5036
blond
2003-01-24 09:23
2003.02.03
Терминирование потока (thread)


14-5241
Ru
2003-01-16 12:06
2003.02.03
Прочти и напиши свой.


1-4858
viper
2003-01-24 17:55
2003.02.03
ListView and TreeView


1-4972
Zloy
2003-01-27 02:26
2003.02.03
не подскажите как в StringGrid программно задать размер м/у ячейк





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский