Цитата:
Сообщение от Xa0$
Там описания пакетов неполные. Пишется конечно длина и ИД у всех.. но некотоорые вообще не определяются. Я сам выясняю за что там байты отвечают, но мне бы хотелось свои знания внести в описание пакетов, дабы ППЦ мне их подсвечивал.
|
Ну так там вроде есть файлик в котором написаны типы аргументов в описателе пакетов.
По аналогии с другими описаниями пакетов все должно быть понятно.
Добавляй сам пакетики и исправляй, если уверен, что тебе это надо.
тут могу тоже выложить:
Типы аргументов:
Код:
'd' : integer (размер 4 байта)
'c' : byte / char (размер 1 байт)
'f' : double (размер 8 байт, float)
'p' : single (размер 4 байта, float)
'h' : word (размер 2 байта)
'q' : int64 (размер 8 байта)
's' : WideString (размер - до первых нулевых байт)
'b' : array[int] // массив, первый инт (первые 4 байта) - размер. общий размер = +4 байта.
'x' : array[byte] // массив, первый байт - размер, общий размер = +1 байт
'-' : пропуск размером '0000' '-(0000Desc)'
'z' : array[const] // блок фикс. длины размером '0000'. 'z(0000Desc)'
'a' : AsciiString // ANSI фикс длины размером '0000'. 'a(0000Desc)'
't' : Ascii[byte] // ANSI, первый байт - длина, общий размер= +1 байт
'l': AsciiZ // 'l(0000Desc)'
// ANSI до первого нулевого символа
// либо до максимальной фиксированной длины '0000',
// если макс. = 0 то максимальная фиксированная длина ограничена размером пакета.
else : 'unknown';
циклы:
на примерах:
d(Count:For.0065) - здесь: берется WORD (d) как значение для цикла следущих 65 аргументов. 'Count' - название данного аргумента.
c(Счетчик:For.0004) - здесь: берется BYTE (c) как значение для цикла следущих 4 аргументов. 'Счетчик' - название данного аргумента.
^_O
(15.10.09)
Злой и Жестокий критик и баголов. Вижу очень далеко, насквозь.
Быстрей наслаждайся иллюзией, пока кто нибудь не растоптал твои грезы.
На любой R0 драйвер найдется свой R0 драйвер.
Yoda не люблю я, дразнится под меня он.