LS как конвертнуть всю структуру?

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
имеется структура/класс

class c_Test
a as integer
b as long
c as byte(8)
......
z as string
End Class

надо конвертнуть весь этот класс в строку - обычный хекс

в других языках программирования мы просто берём указатель на начало структуры и движемся по байтово

как это сделать на LS?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
470
@ToxaRat ты щас о чем спросил?
хочешь бинарный код (скомпилированный) конвертнуть или текст?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
значение всех переменных внутри структуры в стрингу в виже HEX

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

а тут то как?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
470
значение всех переменных внутри структуры в стрингу в виже HEX

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

а тут то как?
опять ничего не понял - пример покажи
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
p := Addr(Self);
Result := '';
for i := 0 to SizeOf(TLic) - 1 do
Result := Result + IntToHex(p, 2);
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
вот и я хочу вытянуть в LS бинарник ;)
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
здесь, давно, yakov что-то выкладывал (получение и декодинг бинарника) в виде мыслей, продукт (как я помню) был коммерческий
то есть в лотусе получить указатель на структуру и воспринять все полученное как массив байт нереально?

точно?

а как же тогда внешние либы, которым требуется не значение массива а указатель на массив работают с лотусом?
 
30.05.2006
1 345
12
BIT
0
Однозначно, что на чистом LS не получится.
И не должно.
1."Структура в памяти" - платформо-зависима. Те-же long, integer и даже byte на разных процессорах имеет разную длину (и порядок байтов). Или "нет Бога кроме Интел и Б.Гейтс пророк его"?
2.А string в LS вообще-то тоже указатель. Слава Богу хоть кодировка от платформы не зависит

ЗЫ: а вообще-то чистА LS-ное решение есть - через запись на диск
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
передаём же в сторонние функции указатель - byVal
есть же возможность кинуть в стрим

может всё же можно?
 
G

GROMILA

ToxaRat
задам тебе истинно лотусиный вопрос

"А зачем тебе это, сын мой?"

Уж не хочешь ли ты сохранить экземпляр класса для возможности последующего восстановления?
Скажи, зачем тебе бинарный дамп класса?
Где и на каком языке, ты будешь разговаривать с этим классом?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Уж не хочешь ли ты сохранить экземпляр класса для возможности последующего восстановления?
Скажи, зачем тебе бинарный дамп класса?
для передачи его другой исполняющей программе

ответ то где?

один из примеров такой необходимости это сложные лицензионные ключи, которые выдаются на блоки программ
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!