Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Free Pascal, Pascal ABC и другие _ ansi_to_oem('ё') Runtime Error

Автор: klem4 3.06.2007 18:01

Есть ф-я

function ANSI_to_OEM(s: Char): Char;
begin
case s of
'А'..'п': dec (s, 64);
'р'..'я': dec (s, 16);
'Ё','Є': inc (s, 72);
'ё','є': inc (s, 57);
'Ї': inc (s, 69);
'ї': inc (s, 54);
end;
ANSI_to_OEM := s;
end;


Следующий вызов:

ansi_to_oem('ё')


приводит FPC в ужас.

Почему ?!



Автор: compiler 3.06.2007 19:46

Цитата(klem4 @ 3.06.2007 14:01) *
приводит FPC в ужас.Почему ?!
а в чем ужас ? у меня компилируется и и сполняется..
реализовал так
function ANSI_to_OEM(s: Char): Char;
begin
case s of
'А'..'п': dec (s, 64);
'р'..'я': dec (s, 16);
'Ё','Є': inc (s, 72);
'ё','є': inc (s, 57);
'Ї': inc (s, 69);
'ї': inc (s, 54);
end;
ANSI_to_OEM := s;
end;
begin
ansi_to_oem('ё');
readln;
read;
end.



Автор: klem4 3.06.2007 19:50

У меня RTE 215 ... А какой символ выдает прога ? 'ё' или что-то другое ?

Автор: compiler 3.06.2007 19:56

Цитата(klem4 @ 3.06.2007 15:50) *
А какой символ выдает прога ? 'ё' или что-то другое ?
если написать
writeLn ( ansi_to_oem('ё') );
то будет ё...

Автор: hardcase 3.06.2007 20:01

Kelm4, попробуй указать код символа 0xB8, а не 'ё'.

Автор: compiler 3.06.2007 20:23

тут еще что то есть... если переменную(русскую) для функции читаем с клавы , то выводится первый символ названия переменной(!) blink.gif
ничего не понимаю wacko.gif

Автор: Archon 4.06.2007 1:24

Цитата
тут еще что то есть... если переменную(русскую) для функции читаем с клавы , то выводится первый символ названия переменной(!)
А у меня при любом названии переменной выводится 'с', и некоторые другие буквы глючат, например при нажатии 'к' выводится символ 'Є'... Думаю проблема в функции smile.gif

PS Но сначала я тоже удивился, так как переменную назвал ch... =)

Автор: compiler 4.06.2007 14:56

да, это я не много погарячился, наверно Archon прав... проблема в функции...