Форум: "Основная";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
ВнизНеизвестный (мне) тип данных Найти похожие ветки
← →
Марина (2002-03-20 11:13) [0]Есть массив, элементы которого имеют длину 8 байт и являются символьными. Подскажите, пожалуйста, что это за тип данных и как с ним работать. Заранее спасибо.
← →
Alx2 (2002-03-20 11:17) [1]String[7]?
А можно описание массива посмотреть? :)
← →
Song (2002-03-20 11:18) [2]А как Вы поняли, что эти переменные занимают в памяти 8 байт?
← →
Виктор Щербаков (2002-03-20 11:18) [3]array [0..7] of Char
← →
Digitman (2002-03-20 11:18) [4]это - нестандартный тип (определен пользователем)
приведи точную декларацию такого массива и его элементов
← →
Марина (2002-03-20 11:44) [5]Точной декларации массива привести не могу, так как массив создается чужой программой, есть только exe- файл и инструкция.Вот в инструкции и написано:элементы массива имеют длину 8 байт и являются символьными.
← →
Alx2 (2002-03-20 11:46) [6]Тогда работайте с элементами этого массива как с символьным массивом из восьми элементов
← →
Виктор Щербаков (2002-03-20 11:47) [7]Правильнее было бы написать: являются восьмисимвольными строками.
← →
Юрий Зотов (2002-03-20 13:33) [8]> элементы массива имеют длину 8 байт и являются символьными
Все сказано очень четко, осталось только перевести на Паскаль:
array [...] of string[8];
← →
Alx2 (2002-03-20 13:47) [9]>Юрий Зотов © (20.03.02 13:33)
Нужно: array [...] of string[7]; (0-й байт на длину)
← →
Юрий Зотов (2002-03-20 13:58) [10]Верно, это я уже потом сообразил. Но тоже не совсем верно, потому что в этом случае 0-м байтом будет управлять программа, а нам это не нужно.
Видимо, надо так:
type
TElement = packed array [0..7] of char; // именно packed!
TArray = array [...] of TElement;
← →
SVM (2002-03-20 14:55) [11]А почему "именно packed!" ??
← →
Alx2 (2002-03-20 15:01) [12]>SVM (20.03.02 14:55)
Чтобы гарантированно подряд в памяти шли.
← →
Виктор Щербаков (2002-03-20 15:09) [13]type Type1 = array [1..10] of array[0..7] of char;
type Type2 = array [1..10] of packed array[0..7] of char;
Так вот, в данном случае SizeOf(Type1) = SizeOf(Type2)
← →
Юрий Зотов (2002-03-20 15:15) [14]Да, но лишь потому, что размер элемента в данном случае кратен разрядности системы. А packed гарантирует сплошность при любых сочетаниях. Переносимость на уровне исходников, однако...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c