Kaprice_P 03-12-2011 22:24
я так понимаю вот так записать:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,windows;
var
welcome : PAnsiChar; // или PChar
begin
try
CharToOem('Привет!', welcome);
Writeln(welcome);
ReadLn
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.
Azgaroth 04-12-2011 15:23
Если хочется использовать именно свою функцию, то её правильную реализацию стоит посмотреть здесь, например:
http://reslib.com/book/Delphi_6__Programmirovanie_na_Object_pascal#128 code:
function Rus(mes: string):string;
// В ANSI русские буквы кодируются числами от 192 до 255,
// в ASCII - от 128 до 175 (А..Яа..п) и от 224 до 239 (р..я).
var
i: integer; // номер обрываемого символа
begin
for i := 1 to length(mes) do
case mes[i] of
'А'..'п' : mes[i] := Chr(Ord(mes[i]) - 64);
'р'..'я' : mes[i] := Chr(Ord(mes[i]) - 16);
end;
Result := mes;
end;
А затем вызывать в коде:
Writeln(Rus('Привет!'));
Если использовать CharToOem, то в простейшем случае можно написать:
code:
var
msg, source : string;
begin
source := 'Привет';
SetLength(msg, length(source));
CharToOem(PChar(source), PChar(msg));
Writeln(msg);
end.
(Правда, проверить нет возможности, компилятора Delphi под рукой давненько нет)
Kaprice_P 05-12-2011 12:58
ммм.....конечно это всё работает, но у меня проблемка в другом:
const rSmall:string='абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
rBig:string='АБВГДЕЁЖЗИКЛМНОПРСТУФХЧЦШЩЪЫЬЭЮЯ';
эти константы у меня выводит в виде всяких крюкозябликов с точками и черточками

Flk 05-12-2011 13:37
Перед выводом их тоже надо конвертировать в кодировку консоли.