дано:
- Код: Выделить всё
type
AAB=array [0..65535] of byte;
PAAB=^AAB;
const
HD: array [0..$F] of char = '0123456789ABCDEF';
var
FData : Pointer;
В память с указателем FData - из TStream, считываются и заменяются разные данные с разным объёмом и содержимым из одного файла;
Задача: нужно их декодировать.
1) Если вывести for i:=0 to DataSize do TMemo.Add(HD[PPD^ shr 4]+HD[PPD^[i] and $F]);, то в TMemo заносится всё содержимое FData и там есть все данные которые нужны. Задача: нужно их декодировать. Но данные не подвержены, какой-то стабильной структуре и в зависимости от содержимого структура FData меняется. По сути там записаны примерно такие данные:
"DAT1" = 12;
"DAT2" = 12.12341234;
"DAT3" = ''привет';
"DAT4" = (1)|(3)|(5);
"DAT5" = DAT8 := любой из "DAT1"..."DAT7";
"DAT6" = (11.1234)|(2.45634)|(5.3576);
"DAT7" = FSubData; // ещё одна FData в которой лежат array of "DAT1", "DAT2", "DAT3", "DAT4", "DAT5" итд
Задача: Нужно вывести: var dat1 := его значение; var dat2 := его значение; var dat3 := его значение; итд
При этом "DAT1"..."DAT7" - не обязательно имеют такой порядок и необязательно могут быть все... (могут быть только "DAT1" и "DAT5")...
2) Если вывести TMemo.Add(PChar(FData)); то выводится первые четыре буквы из FData, на подобии "DAT1", "DAT2" или "DAT3" итп.

При этом, если сделать if (PChar(FData) = "DAT3") then ShowMessage('DAT3');, то ничего не будет, хотя в TMemo "DAT3" - запишется.


Вопросы:






PS: [i]Заранее благодарен за любой информативный ответ.
.