Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > как вывести элементы разного типа?срочно!


Автор: Belij 26.12.2003, 15:39
Есть тип, работающий с различными типами данных.
TSomeData = packed record
case DataType : integer of
0 : (ValueByte : Byte);
1 : (ValueWord : Word);
2 : (ValueDWord : DWord);
3 : (ValueSingle : Single);
4 : (ValueDouble : Double);
end;

Data : TSomeData

как организовать ввод и вывод элементов этого типа, если они юзаются на уровне некого объекта (элемент очереди - класс ATL)?
Ввод элементов должен очуществлятся через консоль, то бишь в стринговом представлении, я знаю как можно String перегнать в Word, Integer, но как в Byte или Double?

И как все это потом вывести на экран?

Автор: Pakshin A. S. 26.12.2003, 19:10
Если правильно понял, то идёт работа с {$APPTYPE CONSOLE}, а значит вывод данных организуется простым writeln, а ему почти всё-равно какой тип (может изъясняюсь довольно коряво).

Код

var
Z:TSomeData;

begin
...
writeln(x);
...
end.

Но это чересчур просто, так что я не уверен в ответе (позволю повториться) из-за неправильности трактования поставленной задачиconfused.gif

Автор: December 26.12.2003, 22:33
Цитата
я знаю как можно String перегнать в Word, Integer, но как в (1) Byte или (2) Double?

1) сначала в integer, потом в byte
2) сначала в real, потом в double

Автор: dr.ZmeY 26.12.2003, 23:47

...
function StrToDay(const ADay: string): Byte; confused.gif

...
function StrToWord(const Value: String): Word;
...

Цитата
2) сначала в real, потом в double

confused.gif
Сам с этим не сталкивался, чёта не понял...

Автор: December 27.12.2003, 01:41
Цитата
Сам с этим не сталкивался, чёта не понял...

real1:real;
double1:double;
...
real1:=strtofloat(...);
double1:=real1;

Автор: dr.ZmeY 27.12.2003, 02:45
Цитата
real1:=strtofloat(...);
double1:=real1;


И всё smile.gif
Я думал мудрёней будет... smile.gif

Автор: December 27.12.2003, 19:12
Можно и мудрёней... Но не на зачётной неделе smile.gif

Автор: Петрович 27.12.2003, 20:53
Snick_Y2K
Цитата
function StrToDay(const ADay: string): Byte;

А что это за функция?
December
Цитата
real1:real;
double1:double;
...
real1:=strtofloat(...);
double1:=real1;

wow.gif ? ? ?
А зачем так сложно, не проще-ли:
Цитата

double1:double;
...
double1:=strtofloat(...);;

Автор: dr.ZmeY 27.12.2003, 21:34
Цитата
А что это за функция?

Перевод строки в дату... Точнее день недели... посмотри хэлп дэлфовый, там всё расписано... но она тут не к месту...

Автор: December 28.12.2003, 16:44
Петрович Это сейчас real=double, и strtofloat такая крутая. А раньше было не так, кажется.

Автор: Belij 29.12.2003, 09:50
StrToDate ? a в каком модуле находится эта функция? то же касается и StrToWord...

Автор: <Spawn> 29.12.2003, 10:09
StrToDate в SysUtils(кстати, это можно в хелпе посмотреть)

Автор: Paradox 29.12.2003, 10:10
Belij а зачем постишь две темы одинаковые ?
Можешь ответ еще в другом своем топике по этой теме глянуть...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)