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

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

packed record в строку [D7]


IvanS ©   (2008-07-10 23:29:00) 

у меня есть
tpack = packed record
a, b, c, d: longword;
d, e, f, g: longword;
end;


каким образом это можно преобразовать в строку? т.е каждый байт в записи надо превратить в единую строку.


han_malign   (2008-07-11 09:19:00) [1]


> SetLength(S, SizeOf(R));
> CopyMemory(@S[1], @R, SizeOf(R));

SetString(S, PChar(@R), SizeOf(R));


Рамиль   (2008-07-11 08:56:00) [2]


> umbra ©   (11.07.08 01:03) [8]

Не прервется, но потом с этой строкой надо осторожно обращаться.


umbra   (2008-07-11 01:03:00) [3]


> А если a = $01000101?

и что? копирование прервется?


Ega23   (2008-07-11 01:01:00) [4]

a = $01010101
b = $02020202
c = $03030303
d = $04040404

А если a = $010 00101?


umbra   (2008-07-11 00:53:00) [5]


> пока #00 не встретится?

с чего бы это?


Ega23   (2008-07-11 00:50:00) [6]


> Юрий Зотов ©   (10.07.08 23:58) [3]


пока #00 не встретится?


Anatoly Podgoretsky   (2008-07-11 00:37:00) [7]

Все равно и уточнение пока смутное.


Юрий Зотов   (2008-07-10 23:58:00) [8]

> IvanS

var
 S: string;
 R: TPack;
...
SetLength(S, SizeOf(R));
CopyMemory(@S[1], @R, SizeOf(R));


IvanS   (2008-07-10 23:52:00) [9]

a = $01010101
b = $02020202
c = $03030303
d = $04040404
....

строка: #$01#$01#$01#$01#$02#$02#$02#$02...

вот так нужно, я действительно плохо вопрос сформировал


Юрий Зотов   (2008-07-10 23:37:00) [10]

> IvanS   (10.07.08 23:29)  

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

Если Вы уверены, что вопрос задан точно, то прямо сейчас напишу код.

Но сначала просьба - подумайте. Ведь не хочется писать код, который никому не понадобится.


Наверх

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