Главная страница
    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
3-35592
NIKI
2002-08-19 16:20
2002.09.12
SQL


14-35905
AL2002
2002-08-19 18:52
2002.09.12
Есть у кого-то прога...


1-35745
Vico
2002-08-30 09:57
2002.09.12
Color


3-35590
NaPoleOn_IV
2002-08-20 20:26
2002.09.12
Это опять я, забыл еще один вопрос: Сумма ПРОПИСЬЮ


8-35820
SAM A Panteleev
2002-04-30 22:02
2002.09.12
Серьезная задача для умных людей





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