Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.11;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
2-1227969557
crazy_student
2008-11-29 17:39
2009.01.11
Задача по работе с массивами


1-1205820119
Прохожий 001
2008-03-18 09:01
2009.01.11
Выделение части текста в TEdit


4-1203943522
Gool
2008-02-25 15:45
2009.01.11
WIN API


15-1226549904
Slider007
2008-11-13 07:18
2009.01.11
С днем рождения ! 13 ноября 2008 четверг


15-1226588778
antonn
2008-11-13 18:06
2009.01.11
нужен jpeg.pas