Для текстовых документов существуют две совершенно различные кодировки — Windows и MS DOS. Обычно приложения Windows используют, естественно, для текстов кодировку Windows. Но если какие-то файлы должны читаться, например, в Norton Commander или в других приложениях DOS, надо применять кодировку MS DOS. Применение этой кодировки требуется также при разработке консольных приложений Win32.
Для взаимного перевода текста в текст DOS и обратно в API Windows предусмотрены две процедуры: CharToOem — перевод в формат DOS, и OemToChar - перевод из формата DOS в «только текст». Они объявлены в модуле Windows. Для VCL Win32 объявления имеют вид:
 
function CharToOem(lpszSrc: PAnsiChar; lpszDst: PAnsiChar): BOOL; 
function OemToChar(lpszSrc: PAnsiChar; lpszDst: PAnsiChar): BOOL; 
function CharToOem(lpszSrc: string; lpszDst: StringBuilder): BOOL; 
function OemToChar(lpszSrc: string; lpszDst: StringBuilder): BOOL; 
Обе процедуры принимают два параметра типа PAnsiChar, первый из которых — указатель на строку переводимого текста, а второй — указатель на строку результата перевода.
Приведу сначала пример консольного приложения VCL Win32:
program Projectl; 
{$APPTYPE CONSOLE} 
uses 
Windows; 
var S: array[0..255] of char; 
SI: string; 
begin 
CharToOem('Привет! Введите свое имя:1, S); 
Writeln (S); 
Readln(Sl); 
OemToChar(PChar(SI), PChar (SI)); 
SI := 'Привет, ' + SI; 
CharToOem(PChar(SI), S); 
Writeln(S); 
Readln; 
end. 
Приложение выводит пользователю приглашение: «Привет! Введите свое имя:». Если пользователь в ответ вводит имя, например, «Иванов», то приложение затем печатает текст «Привет, Иванов» и ждет, пока пользователь нажмет клавишу Enter.
Если бы приглашение пользователю выводилось простым оператором:
Writeln('Привет! Введите свое имя:’);
то пользователь увидел бы на экране абракадабру, в которой смог бы узнать только восклицательный знак и двоеточие. Это связано с тем, что консольное приложение работает в окне DOS, в котором символы кириллицы должны задаваться в кодировке MS DOS. Поэтому первый оператор приведенного выше кода переводит функцией CharToOem текст приглашения в эту кодировку. Далее обычной функцией Writeln этот текст выводится на экран. Функция Readln читает введенный пользователем ответ в строку S1.
		
		
... 
		
			Читать всю статью»