Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.005 c
7-334
netter
2001-12-29 17:26
2002.04.01
getusername


4-354
Romul
2002-01-31 10:44
2002.04.01
Save OpenDialog через API


3-52
urii
2002-03-07 19:09
2002.04.01
переносимость


3-41
iea
2002-03-07 12:20
2002.04.01
Teкущее значение записи в ADO?


1-252
Dok_3D
2002-03-20 14:36
2002.04.01
Как программно удалить COM+ приложение ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский