Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Console Ansi, OEM und Umlaute (https://www.delphipraxis.net/53258-console-ansi-oem-und-umlaute.html)

turboPASCAL 13. Sep 2005 09:58


Console Ansi, OEM und Umlaute
 
Bin gerade dabei eine Consolen Anwendung zu schreiben. Dabei habe ich festgestellt (mal wieder :wink: ) das der Write-Befehl auf die Console nur DOS-OEM-Zeichen ausgibt. Das heist aus "ÜÖÄ üöä ß" wird "▄Í─ ³÷õ ▀".

Geholfen habe ich mir erst einmal mit
Delphi-Quellcode:
function Ansi2OEM(AnsiString: string): string;
begin
  ANSIString := ANSIString + #0;
  CharToOEM(PChar(ANSIString), @ANSIString[1]);
  Delete(ANSIString, Length(ANSIString), 1);
  Result := ANSIString;
end;

//
Writeln(Ansi2OEM('Hallöle !'));
welche die Ausgaben der Umlaute auch auf der Console lesbar macht. ;)

Gibt es eine Möglichkeit die Ausgaben auf die Console auf Ansi umzustellen ?

marabu 13. Sep 2005 10:18

Re: Console Ansi, OEM und Umlaute
 
Hi,

hast du dir schonmal SetConsoleOutputCP() und SetConsoleCP() im Win32 API angesehen?

Grüße vom marabu

turboPASCAL 13. Sep 2005 11:01

Re: Console Ansi, OEM und Umlaute
 
SetConsoleOutputCP & SetConsoleCP ändert in der Registry den CodePage für Consolen Anwendungen HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Nls\CodePage soweit ich das verstanden habe..

gilt das dan nfür alle Consolen-Anwendungen/Ausgaben oder für die jeweilige Anwendung ?

Olli 11. Jun 2006 20:38

Re: Console Ansi, OEM und Umlaute
 
Zitat:

Zitat von turboPASCAL
SetConsoleOutputCP & SetConsoleCP ändert in der Registry den CodePage für Consolen Anwendungen HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Nls\CodePage soweit ich das verstanden habe..

gilt das dan nfür alle Consolen-Anwendungen/Ausgaben oder für die jeweilige Anwendung ?

Falscher Fehler, die beiden Funktionen setzen es für die jeweilige Anwendung und du findest die verfügbaren Codepages im genannten Schlüssel.

turboPASCAL 11. Jun 2006 21:18

Re: Console Ansi, OEM und Umlaute
 
Boah, ist das alt.

danke ich dir dass du den falschen Fehler korrigiert hast. :stupid: Werde es beim nächsten Programm austesten...


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz