
03.10.2014, 09:45
|
 |
Профессионал
|
|
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
|
|
Цитата:
Сообщение от OSIRIS
функции
Код:
function StrOemToAnsi(const S: AnsiString): AnsiString;
begin
SetLength(Result, Length(S));
OemToAnsiBuff(@S[1], @Result[1], Length(S));
end;
//---------------------------------------------------------------
function StrAnsiToOem(const S: AnsiString): AnsiString;
begin
SetLength(Result, Length(S));
AnsiToOemBuff(@S[1], @Result[1], Length(S));
end;
тоже не спасают
|
Вот так должно работать:
Код:
function CharToOemCase(Value: AnsiString): AnsiString;
begin
Result := Value;
if Result <> '' then CharToOemBuffA(Pointer(Result), Pointer(Result), Length(Result));
end;
function OemToCharCase(Value: AnsiString): AnsiString;
begin
Result := Value;
if Result <> '' then OemToCharBuffA(Pointer(Result), Pointer(Result), Length(Result))
end;
Пример:
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
Windows;
function CharToOemCase(Value: AnsiString): AnsiString;
begin
Result := Value;
if Result <> '' then CharToOemBuffA(Pointer(Result), Pointer(Result), Length(Result));
end;
function OemToCharCase(Value: AnsiString): AnsiString;
begin
Result := Value;
if Result <> '' then OemToCharBuffA(Pointer(Result), Pointer(Result), Length(Result))
end;
begin
Writeln(CharToOemCase('Проверка'));
Readln;
end.
|