Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

превод ;integer в массив byte


{bas} ©   (2002-06-20 12:47:00) 

Привет всем!!!
Не подскажите как перевести integer, float и т.д. в массив byte


kull   (2002-06-20 18:43:00) [1]


> Сейчас свой пример (2) преспокойно откомпилил в D3 и D6

Откомпилить то откомпилил но если присвоить: a[0] := 0,
то поменяется и содержимое b что не всегда желательно, т.е. присваивание это не простой перенос содержимого а манипуляции с одной и той же областью памяти.

есть разница integer или указатель на integer...


PVOzerski   (2002-06-20 18:27:00) [2]

2kull © (20.06.02 17:29):
Сейчас свой пример (2) преспокойно откомпилил в D3 и D6


Coalycat   (2002-06-20 17:38:00) [3]

Как комментарий к варианту MBo ©. Иногда приходится байты местами переставлять.


kull   (2002-06-20 17:29:00) [4]

Хотя с другой стороны - как присваивать массив через ":=" ?


kull   (2002-06-20 17:15:00) [5]

Да да верно...


PVOzerski   (2002-06-20 15:40:00) [6]

2kull © (20.06.02 15:04):
Так ведь игра в absolute, записи и указатели - для возможности использовать нормальный оператор присваивания := вместо move!


kull   (2002-06-20 15:04:00) [7]

С absolute и указателями тоже вариант.
Один недостаток - разные переменные а область памяти одна.
Не подходит когда надо чтобы исходные данные остались неизменными.


MBo   (2002-06-20 13:23:00) [8]

4) как вариант 2

i:integer;
p:pbytearray;

p:=@i;
p[3]:=5;


{bas}   (2002-06-20 13:21:00) [9]

спасибо


PVOzerski   (2002-06-20 13:15:00) [10]

А также:
1)

var
a:array[0..3]of byte;
b:integer absolute a;

2)
type
tArray=array[0..3]of byte;
var
a:tArray;
b:integer;
...
a:=tArray(pointer(@b)^);

3)
var
ab:record
case integer of
0:(a:array[0..3]of byte);
1:(b:integer);
end;


kull   (2002-06-20 13:12:00) [11]

Move(i,a,SizeOf(i));
Move(i,a[0],SizeOf(i));

Да и так и так можно.


{bas}   (2002-06-20 13:04:00) [12]

>>kull
да спасибо, только наверное Move(i,a,SizeOf(i));


kull   (2002-06-20 12:51:00) [13]

Может так?

type
a: array[0..3] of byte;
i: Integer;
begin
Move(i,a[0],SizeOf(i));
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо