CharToOem / OemtoChar unter .NET
Hallo!
Wie sehen die Aufrufe von CharToOem/OemtoChar unter .NET aus? Das einfache CharToOem(PChar(s),PChar(s)) klappt nicht mehr. Lothar |
Re: CharToOem / OemtoChar unter .NET
Hallo,
NET arbeitet grundsätzlich mit Unicode. Spezielle Zeichensätze werden über die Encoding-Klasse verarbeitet (z.B. die Convert-Methode). Schau auch einmal in den System.Text-Namespace, ob eine spezielle Klasse (z.B. ASCIIEncoding) Dir schneller hilft. Gruß Jürgen |
Re: CharToOem / OemtoChar unter .NET
Danke für den Tip, aber leider habe ich mich hier ergebnislos festgebissen.
ASCII ist bei .NET nur 7-Bit, d.h. alle typischen Zeichen 0..9, a...z etc. sind identisch. Interessant ist erst das erweiterte ASCII (8-Bit, IBM Code, bis 255) mit den ganzen deutschen Umlauten ü, ä, .. ß ... (Wenn man mit der Maus auf den gestrichelten Text fährt, bekommt man's hier ja auch schon angezeigt...) Da ist es wohl einfacher, ich setze die benötigten Zeichen 'manuell' um (mit Case of ..). Ich verstehe aber nicht, wieso es da nichts Automatisches gibt. (CharToOem war nur 1 Befehl!) Lothar |
Re: CharToOem / OemtoChar unter .NET
Encoding.Default
|
Re: CharToOem / OemtoChar unter .NET
|
Re: CharToOem / OemtoChar unter .NET
Ich möchte noch die von mir gefundenen vollständigen Lösungen nachtragen:
Delphi-Quellcode:
function sfromA (s:string): string; { Ansi -> Oem }
var i: integer; asciibuffer, ansibuffer: array of byte; begin SetLength(ansibuffer,LENGTH(s)); SetLength(asciibuffer,LENGTH(s)); for i:=1 to LENGTH(s) do ansibuffer[i-1]:=ORD(s[i]); asciibuffer:=System.Text.Encoding.Convert(Encoding.Default,Encoding.GetEncoding(850),ansibuffer); result:=String(asciibuffer); end; function sfromO (s:string): string; { Oem -> Ansi } var i: integer; ss: ansistring; buffer: array of byte; Encoding: System.Text.Encoding; begin ss:=s; SetLength(buffer,LENGTH(s)); for i:=1 to LENGTH(s) do buffer[i-1]:=ORD(ss[i]); Encoding:=System.Text.Encoding.GetEncoding(850); result:=Encoding.Getstring(buffer,0,LENGTH(s)); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:02 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