![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
ofenod |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: ![]() ![]() ![]() |
//Имеется тип - запись Student с полем pol:
type Student=record pol: (m,j); end; var st1: Student; begin st1.pol:=m; writeln(st1.pol);// Ошибка нельзя выводить данные этого типа end. |
![]() ![]() |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Запись ни при чём.
Даже если написать так: var pol: (m,j); begin writeln(pol); То компилироваться не будет. -------------------- |
ofenod |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: ![]() ![]() ![]() |
А как же тогда поступить?
|
volvo |
![]()
Сообщение
#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, может и удастся чего сделать без доп. массива. |
-TarasBer- |
![]()
Сообщение
#5
|
Гость ![]() |
> Если ObjectPascal (к примеру, GPC, FPC или Delphi) - то можно попробовать пошаманить с RTTI
Как именно? В Д7 я таких фишек не знаю, например. Да и РТТИ тут мало поможет, если идентификаторы на английском, а вывод нужен на русском. |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Если вывод нужен на русском - то и сами идентификаторы должны быть на русском. RTTI может быть будет способен перевести тот идентификатор, который задан пользователем, в строку. Но это не значит, что он будет способен его перевести на какой-то другой язык.
Цитата В Д7 я таких фишек не знаю, например Это не значит, что их там нет. В Д7 должен быть модуль TypInfo, этого достаточно.Цитата Как именно? Очень просто:uses TypInfo;
// ...
WriteLn (GetEnumName (TypeInfo (Gender), Integer (st1.pol)));
Разумеется, можно получение строки вынести в отдельную функцию. |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 12:16 |