Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];

Вниз

FileRead({record тип}, SizeOf({record тип}));   Найти похожие ветки 

 
Vitalis   (2002-07-01 20:24) [0]

НАрод, вот кусок кода:

type
TMAIN_HEAD = record
HEAD_CRC : Word;
HEAD_TYPE : Byte;
HEAD_FLAGS : Word;
HEAD_SIZE : Word;
RESERVED1 : Word;
RESERVED2 : Cardinal;
end;
....
procedure ABC;
var Rec : TMAIN_HEAD;
begin
FileOpen(...);
FileRead(..., Rec, SizeOf(Rec));
end;


у меня в файле, например, такие байты: 01 02 03 04 05 06 07 08 09...
Получайтся:
Rec.HEAD_CRC = 01 02;
Rec.HEAD_TYPE = 03;
Rec.HEAD_FLAGS = 05 06; // Почему пропускается 1 байт????
Rec.HEAD_SIZE = 07 08;
Дальше все идет с тем же сдвигом на 1 байт.
И еще: почему SizeOF - возвращает 16, а не 13????
Че делать????


 
Volj   (2002-07-01 20:38) [1]

Попробуй снять галочку "aligned record fields" в Project Options|Compiler


 
Vitalis   (2002-07-01 20:52) [2]

У меня D6 - там выбор: 1, 2, 4, 8. А зачем вообще это нужно? Для быстродействия?


 
Anatoly Podgoretsky   (2002-07-01 20:55) [3]

Есть такое волшебное слово packed record
а так да, для скорости, жалко что 16 не хватает


 
Volj   (2002-07-01 21:00) [4]

2Anatoly Podgoretsky:
Присоединяюсь.

2Vitalis: Ставь величину, равную минимальному размеру используемой переменной. А еще лучше, используй Packed record.


 
Vitalis   (2002-07-01 22:59) [5]

Все, понял. Оставил 8 а свои записи поставил packed record. Thx 2 all



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
6-35845
budhha
2002-07-06 13:44
2002.09.12
ARP подмена


14-35884
Вадим
2002-08-16 14:46
2002.09.12
Как реализовать?


8-35818
darha
2002-05-06 23:52
2002.09.12
Программа


3-35564
mas_alexey
2002-08-21 19:11
2002.09.12
Триггер в ISQL


14-35886
CompMan
2002-08-18 23:07
2002.09.12
Kylix





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский