Главная страница
    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.46 MB
Время: 0.01 c
1-4852
Oleon
2003-01-24 16:19
2003.02.03
Поиск компонентов конкретного класса на форме в RUNTIMEе...


1-4875
Fill
2003-01-24 21:39
2003.02.03
Обмен данными с Excel


14-5220
sosv
2003-01-14 15:09
2003.02.03
Перевод программы


14-5165
wetrov
2003-01-17 13:04
2003.02.03
закарючка


1-4955
SeNtiMeL
2003-01-26 19:29
2003.02.03
Как вставить gif картинку в RichEdit ???????





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