Есть указатель (не типизированный pointer) на строку из шести байт, которая находится в оперативной памяти.
- Код: Выделить всё
ZZTTT0
ZZ - первые два байта это word в котором содержится размер всей строки (ZZ + T...T + 00h)
T - это char которых может быть до 64 тысяч
0 - в конце каждой строки 00h означает конец строки
Вычитываю строку так
- Код: Выделить всё
var
p : pointer;
s : string;
begin
p:= super_get;
s:= String(PChar(p+2)); // +2 это смешение для того чтобы не было мусорных символов из за размера
end;
Как мне из своего string получить такую же строку?
- Код: Выделить всё
var
s : string;
z : word;
p : pointer;
begin
s:= 'my text';
z:= 2 + length(s) + 1; // два байта для размера, Х байт для текста и один для 00h
getmem(p, z);
p:= ? // как мне склеить z - размер, s - текст и 00h
super_set(p, z);
freemem(p);
end;
Функции super_get и super_set не мои и отказаться от их использования я не могу.