![]() |
Re: angeblich doppeltes Case-Label, aber ich find keines?
Zitat:
hab es ja versucht und es ging nicht sonst müßte #$00000085 ja ein UCS4-Char sein und nicht mehr in einen Wide-Char passen hab hier nur D7 und D2009 (vielleicht sollte ich nochmal des Turbodelphi draufmachen lassen) - in D7 geht's [add] selbst dises slitten brachte erwartungsgemäß nichts
Delphi-Quellcode:
hab mir aber erstmal so behelfen können :angel:
xtChar: Case C of
#$09, #$0A, #$0D, #$20..#$7E, #$85, #$A0..#$FF: Result := True; #$0100..#$D7FF, #$E000..#$FDD0, #$FDDF..#$FFFD: Result := True; Else Result := False; End;
Delphi-Quellcode:
Case Typ of
xtChar: Case C of #$09, #$0A, #$0D, #$20..#$7E, #$A0..#$FF, #$0100..#$D7FF, #$E000..#$FDD0, #$FDDF..#$FFFD: Result := True; Else Result := (C = #$85); End; |
Re: angeblich doppeltes Case-Label, aber ich find keines?
Hi,
also wie ich sagte oben, so funktionierte es bei mir in Delphi 2009. |
Re: angeblich doppeltes Case-Label, aber ich find keines?
So, selbst ein Neustart bringt nichts,
aber ich hab ja erstmal 'ne Lösung. Wenn ich dran denk, werd ich's in nächster Zeit nochmal probieren. D2009 mit allen Updates (aber wie schonmal irgendwo gesagt, seit dem letzen Update hab ich hier eh einige Problemchen) |
Re: angeblich doppeltes Case-Label, aber ich find keines?
// EDIT:
Ok, der von ganz oben geht bei mir auch nicht. ;-) Ändere ich aber das #$85 wie bereits geschrieben wurde in #$0085 dann funktioniert es... |
Re: angeblich doppeltes Case-Label, aber ich find keines?
Zitat:
ich probier's gleich mal, aber dennoch komisch, warum es da unterschiedlich benahndelt wird .. so, probier und es geht :shock: hab es mal Sicherheitshalber überall gemacht, wo es außerhalb des ASCII-Bereich's liegt |
Re: angeblich doppeltes Case-Label, aber ich find keines?
Zitat:
|
Re: angeblich doppeltes Case-Label, aber ich find keines?
hab jetzt mal etwas rumprobiert
Delphi-Quellcode:
var c1, c2: WideChar;
begin c1 := #$85; c2 := #$0085; Memo1.Lines.Add(Format('%d %d', [Ord(#$85), Ord(#$0085)])); Memo1.Lines.Add(Format('%d %d', [Ord(c1), Ord(c2)])); end;
Code:
also wenn man das so betrachtet, dann isses kein Wunder, wenn da die #$85 plötzlich in dem Bereich liegt.
// Delphi 7:
133 133 133 133 // Delphi 2009 133 133 8230 133 |
Re: angeblich doppeltes Case-Label, aber ich find keines?
Unter Delphi 7 ist SizeOf(#$0085) ja auch gleich SizeOf(#$85) und gleich 1. Unter Delphi 2009 werden die führenden Nullen entsprechend berücksichtigt und deshalb ist SizeOf(#$0085) = 2 und SizeOf(#$85) = 1.
Da ich eigentlich ohnehin immer führende Nullen entsprechend dem Datentyp verwendet habe (der Übersichtlichkeit wegen ;-)), ist mir dieser Unterschied nie aufgefallen. |
Re: angeblich doppeltes Case-Label, aber ich find keines?
Bei Zahlen werwende ich auch meistens die führenden nullen, da es sich so besser lesen läßt, aber Zeichen hatte ich die kürzere Variante gewählt, da die für mich übersichtlicher vorkam.
Ist ja nicht schlchet, wenn z.B. 'ä' in seine entsprechende Unicode-Version umgewandelt wird, aber wenn man mal gemau dieses "Byte" bitgenau braucht :wall: Nja, muß man jetzt halt etwas aufpassen. Und innerhalb des ASCII-Bereichs, welchen die Meißten verwenden, gibt es zum Glück keine Probleme (da dort ANSI und Unicode übereinstimmen) und ansonsten brauchen viele zum Glück keine "Bitgenauen wandlungen, da sie ja das Zeichen und nicht dessen Wert benötigen :angel: [add] also im Grunde hätt es sich besser gemacht, wenn "direkte" Zeichen ala 'x' anders behandelt würden, als welche mit # |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 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