![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
указатели [D7, D2005, 2000, XP]
непонимающий © (2006-09-08 11:41:00)Возникла проблемка, код:
type
TInf_soob = packed record
zag: TZag_inf_soob;
inf_kadr: array of Byte;
MD5: integer;
end;
PInf_soob=^TInf_soob;
......................................................................
s:=OpenDialog1.FileName;
AssignFile(F,s);
Reset(F,1);
.........................
seek(F,i2);
GetMem(glav,i4);
BlockRead(F,glav^.inf_kadr,i5); {???????????????}
glav^.MD5:=0;
glav_nach.priznak_konca:=1;
SetEvent(event_otpr);
...................................
проблема возникает вот на этой строке {???????????????}: из файла просто не считывает в glav^.inf_kadr информацию, может кто-нибудь подскажет как это исправить...
Loginov Dmitry (2006-09-08 15:38:00) [1]Вместо
GetMem(glav,i4);
используй
New(glav)
Не забывай про очистку памяти:
Dispose(glav);
Размер массиву inf_kadr устанавливай вручную следующим образом:
SetLength(inf_kadr, N)
непонимающий (2006-09-08 12:15:00) [2]спасибо, сейчас попробуем...
Сергей М. (2006-09-08 11:50:00) [3]
> т.е под inf_kadr нужно отдельно выделять память???
>
Угу... Аж i5 байт ..
непонимающий (2006-09-08 11:47:00) [4]т.е под inf_kadr нужно отдельно выделять память???
Reindeer Moss Eater (2006-09-08 11:45:00) [5]Твоя пакет рекорд TInf_soob это непрерывный кусок памяти.
Но элементы массива inf_kadr лежат за пределами этого куска.
Reindeer Moss Eater (2006-09-08 11:43:00) [6]из файла просто не считывает в glav^.inf_kadr информацию, может кто-нибудь подскажет как это исправить...
Надо указывать правильный буфер для считывания, а не то что у тебя