--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Nadal ze zwalonym modułem CRT, zmieniającym stronę kodową w tę i nazad z
każdym writelnem?
--
Azarien
a nic nie słyszałem o tym błędzie - moze dlatego ze crt prawie wogle nie
używam .
w źródle wygląda to tak:
Function CrtWrite(var f : textrec) : integer;
var
(* * *)
OldConsoleOutputCP : Word;
begin
OldConsoleOutputCP:=GetConsoleOutputCP;
SetConsoleOutputCP(GetACP);
(* tu właściwe pisanie *)
SetConsoleOutputCP(OldConsoleOutputCP);
(* * *)
end;
i podobnie CrtRead.
GetACP zwraca 1250 - więc program we Free Pascalu w konsoli zamiast ze
strony kodowej 852 korzysta z 1250: ma to pewne plusy (koniec z problemem
różnych kodowań) ale:
- nie da się tego wyłączyć (inaczej niż zakomentować te linie i
przekompilować RTL)
- takie przełączanie strony kodowej za KAŻDYM razem tam i z powrotem
brzydko wygląda
- tracimy możliwość rysowania ramek ASCII, bo ich nie ma w CP1250.
wyrzuciłem więc te linie w 2.4.2, skompilowałem crt i po prostu muszę
pamiętać że korzystam z niestandardowych bibliotek standardowych.
--
Azarien