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

Вниз

Untyped - параметр   Найти похожие ветки 

 
NS1989   (2008-11-27 16:24) [0]

как правильно привести Untyped-параметр в функции к нужному мне типу. Например:


 type
   TValidType = (vtInt, vtBool, vtString, vtFloat);

 procedure Test(const UntypedVar; VarType: TVarType);
 var
   I: Integer;
   B: Boolean;
   S: string;
   F: Extended;
 begin
   case VarType of
     vtInt:
       I :=
     vtBool:
       B :=
     vtString:
       S :=
     vtFloat:
       F :=
   end;
 end;



 
Ega23 ©   (2008-11-27 16:34) [1]

Размер ещё нехило подавать.


 
Поросенок Винни-Пух ©   (2008-11-27 16:40) [2]

А без изврата но через вариант?


 
NS1989   (2008-11-27 16:50) [3]

Вообщем объясню, что хочу сделать: пишу ряд функций (SetInteger, SetBoolean, SetFloat, SetString, GetInteger, getBoolean, GetFloat, GetString) которые будут записывать/считывать различные значения в/из файл.


procedure GetBool(var    Val: Boolean; Name: string);
procedure GetFloat(var   Val: Extended; NtfsName: string);
procedure GetInteger(var Val: Integer; Name: string);
procedure GetString(var Val: String; Name: string);

procedure SetBool(var    Val: Boolean; Name: string);
procedure SetFloat(var   Val: Extended; NtfsName: string);
procedure SetInteger(var Val: Integer; Name: string);
procedure SetInteger(var Val: String; Name: string);



Общая схема такая: Создается MemoryStream в него пишется/ читается значение и ---------- > сохраняется / считывается в файл.

Так вот чтобы в каждой функции не дублировать код создания стрима и считывания/ записи хочу написать общие функции для Set, Get, которы будут на входе получать значение, тип и записывать/ считывать в MemoryStream. Поделитель советами как такое лучше сделать.


 
Поросенок Винни-Пух ©   (2008-11-27 17:22) [4]

а тот код дублировать и не надо


 
Поросенок Винни-Пух ©   (2008-11-27 17:24) [5]

procedure WriteAnyData(const Buff; BuffSize : integer);
begin
Создаем стрим, пишем буфер, вообще не заморачиваясь с тем, что там в
нем.
end;


 
NS1989   (2008-11-27 17:24) [6]


> а тот код дублировать и не надо


А как это .................?


 
Поросенок Винни-Пух ©   (2008-11-27 17:26) [7]

код надо не дублировать, а структурировать используя процедурный подход как минимум и ооп как максимум


 
NS1989   (2008-11-27 17:28) [8]


> Поросенок Винни-Пух

Спасибо... Буду вникать ....


 
Ega23 ©   (2008-11-27 18:00) [9]


> Так вот чтобы в каждой функции не дублировать код создания
> стрима и считывания/ записи хочу написать общие функции
> для Set, Get, которы будут на входе получать значение, тип
> и записывать/ считывать в MemoryStream. Поделитель советами
> как такое лучше сделать.


мне вот интересно, каким макаром ты будешь считывать строку, если тебе неизвестен её размер?
Или у тебя на каждое значение - строго по одному стриму?


 
Поросенок Винни-Пух ©   (2008-11-27 18:07) [10]

TReader + TWriter



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

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

Наверх




Память: 0.46 MB
Время: 0.007 c
2-1227864512
Golden
2008-11-28 12:28
2009.01.11
Позиция в таблице


15-1226994654
cyborg
2008-11-18 10:50
2009.01.11
Профилировщик


2-1227981998
lewka
2008-11-29 21:06
2009.01.11
Передача картинки от сервера к клиенту


3-1212508441
Flyman
2008-06-03 19:54
2009.01.11
Как сделать поиск в базе данных в Юникоде


15-1226981467
Slider007
2008-11-18 07:11
2009.01.11
С днем рождения ! 18 ноября 2008 вторник





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