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

Вниз

Packed record. absolute. file r/w.   Найти похожие ветки 

 
3d[Power]   (2002-01-11 01:22) [0]

Этот вопрос частично освещался, но всеже хотелось подробнее узнать о packed record. О записи и чтении packed record"a в файл. Как записывать последовательность packed record"oв (в нефиксированном порядке). И наконец, что такое absolue. В хэлпе непонятно :(.


 
SoftOne   (2002-01-11 01:29) [1]

> 3d[Power] ©
Не понял - это шутка? Твой НИК достаточно известен здесь как НЕ ЛАМЕРСКИЙ.


 
gek   (2002-01-11 07:44) [2]

absolue указывает, что указанная переменная будет записана по абсолютному адресу т.е. именно по адресу который указан и ни по какому другому


 
Владислав   (2002-01-11 07:53) [3]

Или вернее располагаться по указанному адресу.


 
Mbo   (2002-01-11 07:59) [4]

тут надо пример
var a:array[0..3] of byte;
b:integer absolute a;

и а и b располагаются по одному адресу,
сделав
b:=0;
получаем обнуление массива


 
MegaVolt   (2002-01-11 10:05) [5]

Packed record это такая запись которая лежит в памяти последовательно на сколько я это понимаю и она позволяет записывать и читать в/из файла с помошью например потока:

F:=TStreamFile.Create;
F.Write(Packed_Record,SizeOf(T_Packed_Record));

Я писал по памяти так что мгут быть небольшие синтаксические ошибки.
В таком типе записи могут быть только переменные фиксированной длинны т.е.
String нельзя
String[25] можно.


 
Romkin   (2002-01-11 11:00) [6]

Packed record :-))
Как, думаю, многим известно, Дельфя стараются выравнивать переменные по границе n байт, для ускорения доступа. При включенной опции {$ALIGN ON}, или "Aligned record fields" (по умолчанию), поля записей также выравниваются по адресу, нацело делящемуся на 1,2,4,8 (зависит от типа поля, для real, например - 2) в результате например record a,b,c,d: byte end; займет не 4 байта, а 16. При указании packed выравнивание не применяется, и размер записи равен сумме размеров полей. И все! Просто при записи/чтении в поток/файл как правило используют сжатые записи, чтобы пустого места не было, и была независимость от выравнивания


 
FX_Demon   (2002-01-11 12:43) [7]

2 SoftOne, я просто никогда не изучал packed record.


 
3d[Power]   (2002-01-11 12:44) [8]

Сорри, за траблы с ником, я на чужом компе..
2 SoftOne, я просто никогда не изучал packed record.



 
3d[Power]   (2002-01-11 12:51) [9]

ВОПРОС МОДЕРАТОРАМ: Как я с чужого компа смог от моего имени сообщение добавить? Я же зареген


 
panov   (2002-01-11 13:21) [10]

Не используй спецсимволы и пробелы в нике.


 
3d[Power]   (2002-01-11 18:02) [11]

2 panov, почему же мне © выдают?


 
panov   (2002-01-11 18:09) [12]

Пиши Мерлину delphi@mastak.ru


 
3d[Power]   (2002-01-12 00:50) [13]

test


 
Merlin   (2002-01-12 00:57) [14]

исправлено



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

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

Наверх





Память: 0.47 MB
Время: 0.004 c
1-99935
veZuk
2002-01-12 12:14
2002.01.31
Параметры запуска


1-99976
Georg
2002-01-14 15:56
2002.01.31
Проблемулька...


14-100071
модератор
2001-12-07 21:41
2002.01.31
.


6-100026
Диман
2001-11-09 12:18
2002.01.31
модуль Winsock - функции socket, connect и т.п.


3-99869
mcmax
2001-12-24 23:36
2002.01.31
SQLPASSTHRU MODE= SHARED AUTOCOMMIT





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