Как преобразовать OEM в ANSI
Пример кода:
procedure ConvertFile(const FileName: string;
fromCodepage: Integer);
var
ms: TMemoryStream;
begin
if getOEMCP <> fromCodepage then
raise Exception.Create('ConvertFile: Codepage doesn't match!');
ms := TMemoryStream.Create;
try
ms.LoadFromFile(FileName);
// создаем откат
ms.Position := 0;
ms.SaveToFile(ChangeFileExt(FileName, '.BAK'));
// Преобразовываем текст
OEMToCharBuff(ms.Memory, ms.Memory, ms.Size);
// Сохраняем изменения в файле
ms.Position := 0;
ms.SaveToFile(FileName);
finally
ms.Free;
end;
end;
Комментарии