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

Вниз

Сохранение вариантного массива в файле?   Найти похожие ветки 

 
Voice   (2004-01-05 12:53) [0]

У меня есть вариантный массив, в котором хранятся данные разных типов. Что-то вроде

var MyVar:Variant;
begin
MyVar:=VarArrayCreate([0,9],varVariant);
MyVar[0]:="abcd";
MyVar[1]:=123;
MyVar[2]:=123.456;
MyVar[3]:=true;
MyVar[4]:=false;
...........
end;

Мне надо эту переменную сохранить в файле. Как бы это можно сделать, если вообще можно?


 
olookin   (2004-01-05 13:01) [1]

Я полагаю что только через SizeOf. Например если известно что MyVar[2] - это double, то тогда f.Write(MyVar[2],SizeOf(double));
Тип можно узнать через VarType


 
Sandman25   (2004-01-05 13:06) [2]

f.Write(MyVar[2],SizeOf(Variant));


 
olookin   (2004-01-05 13:15) [3]

d: double;
d:=Myvar[2];
f.Write(d,SizeOf(double));

Так получается писать в файл и читать тоже

f.Read(d,sizeof(double));


 
Voice   (2004-01-05 13:16) [4]

А если тип varVariant?
SizeOf от Variant всегда возвращает 16 байт, но там может храниться и больше.....


 
Sandman25   (2004-01-05 13:19) [5]

[4] Voice (05.01.04 13:16)

Если есть строки и прочее, то тогда нужно разбираться с внутренним устройством TVarRec и записывать еще и то, на что Variant ссылается.


 
Sandman25   (2004-01-05 13:20) [6]

Вру. Не TVarRec, а TVarData.


 
alex_***   (2004-01-05 13:52) [7]

писать размер и тип поля перед каждым полем


 
Voice   (2004-01-05 14:09) [8]

А если в каком-то элементе вариантного массива у меня записано значение моего типа, в котором могут быть строки и дин.массивы? Как тогда узнать размер этого элемента?
SizeOf от этого моего типа возвратит размер только статических полей этого типа, а все строки и дин.массивы он пропустит, типа их там нету...


 
Voice   (2004-01-05 14:36) [9]

Как-нть можно узнать размер самой MyVar?



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

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

Наверх





Память: 0.46 MB
Время: 0.01 c
14-49704
MadAngel
2003-12-25 16:14
2004.01.16
Помогите с The Bat om


3-49394
hirlik
2003-12-19 09:12
2004.01.16
Компонент для отображения деревьев из BD


1-49602
Toots
2004-01-05 12:48
2004.01.16
файл ресурсов


8-49644
simmoril
2003-09-17 06:56
2004.01.16
Координаты отмеченных пикселей в bmp-файле


6-49657
DelphiN!
2003-11-14 19:09
2004.01.16
Соединение TClientSocet и TServerSocet





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