|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Подскажите! Как преобразовать определенный тип в array of byte
Пожалуйста, помогите с задачкой!
{есть тип TSCmd} Type TSCmd = record CMD : String[50]; SQL : String[100]; FILTER : String[100]; TABLE : String[15]; ID: Integer; end; .... var A: TSCmd; B: Array of Byte; begin ..... Как мне преобразовать Тип A в массив B array of byte??? Заранее спасибо ..... end. |
#2
|
||||
|
||||
А не надо ничего преобразовывать. Сначала устанавливаешь длину массива равную размеру TSCmd. Потом копируешь область памяти того же размера с A в B. И все
ЗЫЖ: Я бы порекомендовал еще посмотреть в сторону packed record Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
||||
|
||||
поясню сказанное Aristarh Dark:
Код:
TInfo = packed record a: Word; b: Cardinal; ... end; procedure Save(AStream: TStream); var nfo: TInfo; begin nfo.a := 50; nfo.b := 800000; AStream.Write(nfo,SizeOf(nfo)); end; вот как то так TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#4
|
||||
|
||||
Вообще-то я имел в виду немного другое:
Код:
Type TData = packed record f1:string[5]; f2:integer; f3:boolean; end; var arrdata:array of byte; vardata:TData; begin vardata.f1:='12345'; vardata.f2:=65536; vardata.f3:=True; SetLength(arrdata,SizeOf(TData)); Move(vardata,arrdata[low(arrdata)],SizeOf(TData)); end; Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#5
|
|||
|
|||
Цитата:
Большое спасибо это именно то, что мне нужно теперь земляне могут спать спокойно |