IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Вывод поля записи
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


//Имеется тип - запись Student с полем pol:
type
Student=record
pol: (m,j);
end;

var
st1: Student;

begin
st1.pol:=m;
writeln(st1.pol);// Ошибка нельзя выводить данные этого типа
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Запись ни при чём.

Даже если написать так:

var
pol: (m,j);

begin
writeln(pol);

То компилироваться не будет.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


А как же тогда поступить?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Если Турбо-Паскаль - то:
type
Gender = (m, f);
Student =
record
pol : Gender;
end;
const
GenderTitle : array[Gender] of Char = ('m', 'f');

var
st1 : Student;
begin
st1.pol := m;
writeln (GenderTitle [st1.pol]);
end.
Если ObjectPascal (к примеру, GPC, FPC или Delphi) - то можно попробовать пошаманить с RTTI, может и удастся чего сделать без доп. массива.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






> Если ObjectPascal (к примеру, GPC, FPC или Delphi) - то можно попробовать пошаманить с RTTI

Как именно? В Д7 я таких фишек не знаю, например. Да и РТТИ тут мало поможет, если идентификаторы на английском, а вывод нужен на русском.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Если вывод нужен на русском - то и сами идентификаторы должны быть на русском. RTTI может быть будет способен перевести тот идентификатор, который задан пользователем, в строку. Но это не значит, что он будет способен его перевести на какой-то другой язык.

Цитата
В Д7 я таких фишек не знаю, например
Это не значит, что их там нет. В Д7 должен быть модуль TypInfo, этого достаточно.

Цитата
Как именно?
Очень просто:
uses TypInfo;
// ...
WriteLn (GetEnumName (TypeInfo (Gender), Integer (st1.pol)));
Разумеется, можно получение строки вынести в отдельную функцию.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.05.2024 15:54
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name