![]() |
Umlaute mit Readln einlesen
Gegeben sein folgendes Programm:
Delphi-Quellcode:
Die Ausgabe funktioniert, nur die Eingabe nicht. Gibt man zum Beispiel ein ö ein kommt " raus. Gibt es dafür eine Lösung?
program Project1;
{$APPTYPE CONSOLE} uses SysUtils, windows; function Ansi2OEM(AnsiString: string): string; begin ANSIString := ANSIString + #0; CharToOEM(PChar(ANSIString), @ANSIString[1]); Delete(ANSIString, Length(ANSIString), 1); Result := ANSIString; end; var s: String = ''; begin Writeln(Ansi2Oem('äöüäöüäöüäöööäüäöüäöäöüöüöäöüöäöüöäöüööüöäöüöäöüöäöüööüöäöüöäöüöäöüö')); while True do begin s := ''; Readln(s); Writeln(Ansi2OEM(s)); end; end.
Delphi-Quellcode:
Funktioniert nicht.
Readln(Ansi2OEM(s));
|
Re: Umlaute mit Readln einlesen
Delphi-Quellcode:
Gibt mir die Umlaute korrekt aus.
ReadLn(s);
WriteLn(s); |
Re: Umlaute mit Readln einlesen
OK, da habe ich einmal zu viel gedacht. :mrgreen:
|
Re: Umlaute mit Readln einlesen
Bei mir nicht :(
Delphi-Quellcode:
Edit: Alles klar jetzte habe ichs. :)
äöüäöüäöüäöööäüäöüäöäöüöüöäöüöäöüöäöüööüöäöüöäöüöäöüööüöäöüöäöüöäöüö
äöü ""_ |
Re: Umlaute mit Readln einlesen
Und imho müsstest du zur Ausgabe lediglich
Delphi-Quellcode:
verwenden.
function ChrToOem(s: string): string;
begin SetLength(Result, Length(s)); CharToOem(PAnsiChar(s), @Result[1]); end; function OemToChr(s: string): string; begin SetLength(Result, Length(s)); OemToChar(PAnsiChar(s), @Result[1]); end; Nachtrag: Wenn man nur mit ChrToOem konvertiert, käme es zu kuddel-muddel. Strings die du im Quelltext festgelegt hast wären im ASCII-Zeichensatz, Strings die du später einließt im OEM-Zeichensatz. Deswegen habe ich noch die Routine zum Konvertieren von Oem nach ASCII hinzugefügt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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