Помощь - Поиск - Пользователи - Календарь
Полная версия: консоль и текст
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Client
Написать программу (консольное приложение), которая запрашивает у пользователя вес в фунтах, пересчитывает его в килограммы и выводит результат на экран. Для вывода сообщений использовать функцию RUS, которая преобразует строку символов в кодировке ANSI в строку в кодировке ASCII. (функцию создать самостоятельно).
Интересует вторая часть условия. Используется консоль в дельфи или паскаль.
Как задать строку на русском языке, чтоб при выводе она отобразилась корректно?
volvo
Дельфи 2007 и выше:
  function WinToDos(const S: string): AnsiString;
begin
setLength(result, length(S));
if not CharToOem(pWideChar(S), pAnsiChar(result)) then
setLength(result, 0)
end;

Дельфи 2006 и ниже:
  function WinToDos(const S: string): string;
begin
setLength(result, length(S));
if not CharToOem(pChar(S), pChar(result)) then
setLength(result, 0)
end;

Попробуй запустить вот такое простейшее консольное приложение:
var s: string;
begin
s := 'Привет, мир!';
writeln(WinToDos(s));
readln;
end.
Client
Спасибо, 1 вариант у меня отработал (D2009). А для паскаля такое возможно?
volvo
Для какого Паскаля? Разве ты при работе в Паскале не используешь одну и ту же кодировку и в самой IDE, и в консоли при выводе? Вот в Дельфи кодировки действительно разные - в IDE виндовая, а в консоли OEM. Отсюда и необходимость переконвертации.
Client
Понятно, хотя странно зачем разные кодировки...
А про паскаль - это уже на тему "Паскаль и русские слова" smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.