![]() |
Konsolenanwendung Zeichensatz
Hi,
hab mir mal mit Delphi eine Konsolenanwendung {$APPTYPE CONSOLE} gemacht. Leider gibt es hier Probleme bei der Formatierung von Strings über WriteLn(). Anscheinend wird hier nicht der "normale" ASCII-Zeichensatz verwendet, sondern ein anderer. z.B. hat ein ä im normalen Zeichensatz den Index #228, bei der Konsole erhalt ich ein ä über #132. Gibt es evtl. eine einfache Umwadlung des Zeichensatzes? |
Re: Konsolenanwendung Zeichensatz
Zitat:
![]() ![]() Zitat:
|
Re: Konsolenanwendung Zeichensatz
Zitat:
Kann man denn nicht allgemein, irgendwo am Anfang bei der Deklaration den Zeichensatz eines Strings festlegen? Zitat:
Der ASCII-Zeichensatz besteht doch aus 256 Zeichen und da sind auch Umlaute mit dabei... Oder liege ich jetzt vollkommen daneben? :gruebel: |
Re: Konsolenanwendung Zeichensatz
Zitat:
2.) Im orginal (E)ASCII sind tatsächlich keine Umlaute enthalten. Es gibt aber Codeseiten, mit denen man Umlaute reinmappen kann. Apropos: wenn die Konsole sofort wieder geschlossen wird, riecht das eher nach einer Exception. Mglw. rufst du obige Funktionen nicht korrekt auf? |
Re: Konsolenanwendung Zeichensatz
Zitat:
Zitat:
Delphi-Quellcode:
Ist da was falsch?
var s1,s2: string;
{...} s1 := 'ä'; CharToOEM( PChar(s1), PChar(s2)); WriteLn(s2); Habe diese Funktionen noch nie benutzt... |
Re: Konsolenanwendung Zeichensatz
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Konsolenanwendung Zeichensatz
Zitat:
|
Re: Konsolenanwendung Zeichensatz
Zitat:
//Edit: dieses elende quote-Zeug's... Ich hasse es! |
Re: Konsolenanwendung Zeichensatz
Okay, so geht's:
Delphi-Quellcode:
Aber ich würde es gerne mit der anderen Methode machen, dass die Strings im Quellcode direkt im DOS-Zeichensatz formatiert sind.
{...}
s1 := 'ä'; SetLength(s2, Length(s1)); CharToOEM( PChar(s1), PChar(s2)); WriteLn(s2); Also wenn ich eingebe:
Delphi-Quellcode:
...dann soll das auch so in der Ausgabe meiner Konsole richtig stehen...
WriteLn('ä');
|
Re: Konsolenanwendung Zeichensatz
SetLength benutzen.
Sorry, war kein roter Kasten da. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz