Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Bug in Lowercase? (https://www.delphipraxis.net/172517-bug-lowercase.html)

greenmile 8. Jan 2013 16:48

Bug in Lowercase?
 
Hallo,

ich bin gerade vom Glauben abgefallen und kann es, ehrlich gesagt, auch nicht so recht glauben.

- Gegeben: XE3 Pro, Update 1.
- ToDo: Datei / Neu /VCL (Win32)
- Einfach einen Button auf die Form, im OnClick dann folgenden Befehl:

MessageDlg('Österreich'+#13#10+Lowercase('Österrei ch'), mtWarning, [mbOK], 0);

Heraus kommt: Beide Male das selbe? Mit allem funktioniert es, nur mit dem Ö nicht (Ä habe ich nicht versucht).
Österreich = Österreich, also nichts mit Lowercase.

Kann das jemand reproduzieren?

Helmi 8. Jan 2013 16:51

AW: Bug in Lowercase?
 
Probier mal AnsiLowerCase

Delphi-Quellcode:
MessageDlg('Österreich'+#13#10+AnsiLowercase('Österrei ch'), mtWarning, [mbOK], 0);
.

In der Hilfe ist beschrieben, dass nur A..Z klein geschrieben werden

Zitat:

LowerCase wandelt die Zeichen des mit S angegebenen String-Wertes in Kleinbuchstaben um. Die Konvertierung betrifft jedoch nur die mit 7 Bit darstellbaren ASCII-Zeichen zwischen 'A' und 'Z' (keine Umlaute). Sollen die landesspezifischen Zeichen des 8-Bit-Zeichensatzes konvertiert werden, verwenden Sie stattdessen die Funktion AnsiLowerCase.

greenmile 8. Jan 2013 17:07

AW: Bug in Lowercase?
 
Wie konnte ich nur darauf kommen, dass Lowercase nicht immer Lowercase ist? ;)
Ich bin echt zu alt für diesen ...

Werde jetzt am Anfang jeder Unit zwei Hilfsfunktionen einfügen damit ich das nicht vergesse:

function LowerCase(const S: string): string;
begin
Result := System.SysUtils.AnsiLowerCase(System.SysUtils.Lowe rcase(S));
end;

function UpperCase(const S: string): string;
begin
Result := System.SysUtils.AnsiUpperCase(System.SysUtils.Uppe rCase(S));
end;

Danke!

greenmile 8. Jan 2013 17:11

AW: Bug in Lowercase?
 
Doppelpost.

Helmi 8. Jan 2013 17:11

AW: Bug in Lowercase?
 
Zitat:

Zitat von greenmile (Beitrag 1198259)
Wie konnte ich nur darauf kommen, dass Lowercase nicht immer Lowercase ist? ;)
Ich bin echt zu alt für diesen ...

Danke!

Bin dummerweise auch schon mal da drüber geflogen ;-)

greenmile 8. Jan 2013 17:13

AW: Bug in Lowercase?
 
Sonst noch irgendwelche Basic Befehle? Trim scheint noch Trim zu sein ...

jfheins 8. Jan 2013 17:42

AW: Bug in Lowercase?
 
1. Warumj postest du immer noch Code ohne Code Tags? Dadurch werden hässliuche Leerzeichen eingefügt...
2. Warum doppelt? Hält besser?
Delphi-Quellcode:
function UpperCase(const S: string): string;
 begin
 Result := System.SysUtils.AnsiUpperCase(S); // Einmal das "richtige" sollte reichen...
 end;

greenmile 8. Jan 2013 18:25

AW: Bug in Lowercase?
 
Wenn einmal das richtige reicht, wieso gibt es dann in der VCL 2 ??

Uwe Raabe 8. Jan 2013 18:30

AW: Bug in Lowercase?
 
Zitat:

Zitat von greenmile (Beitrag 1198269)
Wenn einmal das richtige reicht, wieso gibt es dann in der VCL 2 ??

Weil die eine Version deutlich schneller ist als die andere. Wenn man sicher ist, daß der String nur reine ASCII-Zeichen enthält, kann man halt die schnellere Funktion nehmen.

greenmile 8. Jan 2013 19:23

AW: Bug in Lowercase?
 
Hmmmm ... Ok, nehme ich jetzt mal so hin. In den meisten Fällen weiß ich natürlich nicht, ob ein Ö drin ist. Dann müsste ich das vor-filtern und der ganze Geschwindigkeitsvorteil ist dahin.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:20 Uhr.
Seite 1 von 2  1 2      

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