- Код: Выделить всё
program ppppp;
{$mode objfpc}
{$codepage cp1251}
{$H+}
Var s:RawByteString;
t:TextFile;
s1:string;
begin
AssignFile(t,'p.data');
reset(t);
readln(t,s);
CloseFile(t);
// здесь вывод будет в cp866
s1:='Строка:';
writeln('Codepage of s1:',StringCodePage(s1));
writeln('codepage of s:',StringCodePage(s));
writeln(s1,s);
// вот здесь вывод будет в 1251
AssignFile(t,'con');
rewrite(t);
writeln(t,s1,s);
closeFile(t);
end.
Добавлено спустя 50 минут 44 секунды:
Мда. Долго думал. Так и не понял, как к этому отнестись.
С одной стороны - подход правильный.
С другой стороны: нпример, файлы данных должны быть не в системной кодировке. И?
использовать грязные хаки типа прямой подмены кодовой страницы в строковых переменных?
где в таком случае, в RTL, наконец AssignFile с аргументами (filevar,filename,codepage)? А нет их.