Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.01;
Скачать: CL | DM;

Вниз

Неизвестный (мне) тип данных   Найти похожие ветки 

 
Марина   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
1-106
AlexMost
2002-03-14 15:51
2002.04.01
DDE и Иллюстратор


3-66
Malder
2002-03-08 14:37
2002.04.01
ЛЮДИ, помогите. Такая ошибка... я ничего не понимаю


1-242
ghost_by
2002-03-06 20:20
2002.04.01
Показать Hint ы в StringGride


1-124
Beginner
2002-03-21 18:48
2002.04.01
Запуск приложения из моей программы.


1-145
ЗЛ
2002-03-22 07:36
2002.04.01
Eсть ListBox внем 300 записей, каждые пол секунды я вывожу в label запись начиная с первой и заканчивая последней как мне сделать к этому действию ProgresBar