Каков синтаксис для литеральных массивов в Free Pascal?

#arrays #literals #freepascal

#массивы #литералы #freepascal

Вопрос:

Есть список из 50 с лишним жестко закодированных байтов, который я хотел бы сохранить в массиве байтов, но я не могу найти синтаксис Free Pascal для жестко закодированных массивов.

Использование множеств [elem, elem, elem] , так что же используют массивы?

Комментарии:

1. Почему вы не можете использовать для этого строку?

2. Переменная представляет собой статический ключ, состоящий из байтов, используемых в простой схеме шифрования. Строки может быть достаточно, но 1) каждый байт в ключе должен быть экранирован, и 2) использование массива байтов укрепит идею о том, что ключ на самом деле является массивом байтов.

Ответ №1:

попробуйте это

 Const
  MyArray : Array[0..3] of byte= (0,1,2,3);   
  

Обновить

вы должны перевести это

 static int xlat[] = {
0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f,
0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72,
0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53,
0x55, 0x42, 0x73, 0x67, 0x76, 0x63, 0x61, 0x36,
0x39, 0x38, 0x33, 0x34, 0x6e, 0x63, 0x78, 0x76,
0x39, 0x38, 0x37, 0x33, 0x32, 0x35, 0x34, 0x6b,
0x3b, 0x66, 0x67, 0x38, 0x37
};

static int XLAT_SIZE = 53;
  

к этому

 const
 XLAT_SIZE = 53;
 xlat : Array[0..XLAT_SIZE-1] of Integer = (
 $64, $73, $66, $64, $3b, $6b, $66, $6f,
 $41, $2c, $2e, $69, $79, $65, $77, $72,
 $6b, $6c, $64, $4a, $4b, $44, $48, $53,
 $55, $42, $73, $67, $76, $63, $61, $36,
 $39, $38, $33, $34, $6e, $63, $78, $76,
 $39, $38, $37, $33, $32, $35, $34, $6b,
 $3b, $66, $67, $38, $37
);
  

Комментарии:

1. Ключ находится xlat в ios7crypt.c , если быть точным. Будет ли синтаксис таким же? Когда я копирую ваш синтаксис, я получаю Fatal: Syntax error, "," expected but ")" found .

2. Как я могу объединить два байтовых массива?

3. 2.7.1 также поддерживает синтаксис Delphi compat dynarray.create.