![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Untyped - параметр
NS1989 © (2008-11-27 16:24:00)как правильно привести 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;
Поросенок Винни-Пух (2008-11-27 18:07:00) [1]TReader + TWriter
Ega23 (2008-11-27 18:00:00) [2]
> Так вот чтобы в каждой функции не дублировать код создания
> стрима и считывания/ записи хочу написать общие функции
> для Set, Get, которы будут на входе получать значение, тип
> и записывать/ считывать в MemoryStream. Поделитель советами
> как такое лучше сделать.
мне вот интересно, каким макаром ты будешь считывать строку, если тебе неизвестен её размер?
Или у тебя на каждое значение - строго по одному стриму?
NS1989 (2008-11-27 17:28:00) [3]
> Поросенок Винни-Пух
Спасибо... Буду вникать ....
Поросенок Винни-Пух (2008-11-27 17:26:00) [4]код надо не дублировать, а структурировать используя процедурный подход как минимум и ооп как максимум
Поросенок Винни-Пух (2008-11-27 17:24:00) [5]procedure WriteAnyData(const Buff; BuffSize : integer);
begin
Создаем стрим, пишем буфер, вообще не заморачиваясь с тем, что там в
нем.
end;
NS1989 (2008-11-27 17:24:00) [6]
> а тот код дублировать и не надо
А как это .................?
Поросенок Винни-Пух (2008-11-27 17:22:00) [7]а тот код дублировать и не надо
NS1989 (2008-11-27 16:50:00) [8]Вообщем объясню, что хочу сделать: пишу ряд функций (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 16:40:00) [9]А без изврата но через вариант?
Ega23 (2008-11-27 16:34:00) [10]Размер ещё нехило подавать.