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

Вниз

динамические массивы   Найти похожие ветки 

 
непонимающий   (2006-09-18 12:04) [0]

возникла не большое затруднение, помогите пожалуйста разрешить его:
есть массив

type
 TOTPR = packed record
    otpr_massiv: array of Byte;
 end;
 POTPR=^TOTPR;

и есть переменная
f: integer;
и вот нужно в это массив записать значение этой переменной
a: POTPR;
.............
a^.otpr_massiv[20]=f;

к сожалению он записывает туда только 1 байт, вы не подскажете как туда записать все 4 байта?


 
Zeqfreed ©   (2006-09-18 12:07) [1]

> к сожалению он записывает туда только 1 байт

Откуда такая уверенность? Память под массив-то выделяешь хоть?
А вообще, зачем такие извращения?


 
Eraser ©   (2006-09-18 12:07) [2]

> [0] непонимающий   (18.09.06 12:04)


> TOTPR = packed record
>    otpr_massiv: array of Byte;

принципиальная ошибка, здесь следует использовать статический массив, либо вообще отказаться от использования структуры.


 
Palladin ©   (2006-09-18 12:12) [3]

ну вообще конструкция странноватая и безсмысленная...

размер записи у тебя равен 4 байтам, т.к. идентификатор optr_massiv - это указатель, соответственно packed не имеет никакого смысла, чем не устраивает просто объявление TOTPR=Array of Byte ?

это раз, два: конечно он будет записывать туда один байт, бо таков тип элемента массива, хочешь записать Integer целиком придется побайтно назначать либо использовать Move

a.
With LongRec(f) Do
Begin
 a[20]:=Bytes[0];
 a[21]:=Bytes[1];
 a[22]:=Bytes[2];
 a[23]:=Bytes[3];
End

b.
Move(f,a[20],4)


 
непонимающий   (2006-09-18 12:26) [4]


> Palladin

спасибо, сейчас поправлю и попробую...


 
Anatoly Podgoretsky ©   (2006-09-18 15:08) [5]

Do not apply the dereference operator (^) to a dynamic-array variable or pass it to the New or Dispose procedure.



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

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

Наверх




Память: 0.45 MB
Время: 0.055 c
2-1158846505
jjj
2006-09-21 17:48
2006.10.08
Ошибка при работе с базой данных


1-1156793871
Fatefell
2006-08-28 23:37
2006.10.08
Декомпилятор из паскаля


15-1158296765
wwwrr
2006-09-15 09:06
2006.10.08
44.5


2-1158529125
Aleksandr
2006-09-18 01:38
2006.10.08
net и чаты


3-1154862962
serko
2006-08-06 15:16
2006.10.08
Найти далее и др.





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