LCase("ß")="ÿ"

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
computerkranker
Beiträge: 66
Registriert: 12.10.2004 21:21

LCase("ß")="ÿ"

Beitrag von computerkranker »

Bei mir kommt da ein "ÿ" /:->

Code: Alles auswählen

Debug LCase("ß")
Wäre schön wenn jemand anderst das mal testen könnte, ob es bei ihm auch so ist.

Behelfe mir gerade so:

Code: Alles auswählen

text$="Schloß"
text$=LCase(text$)
Debug text$
ReplaceString(text$,"ÿ","ß",2) 
Debug text$
:allright:
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Ja, stimmt. Ich poste das dann mal im englischen Forum damit Fred das richten kann.
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag von GPI »

müßte er eigentlich wissen.

Achja: Das ß ist ein kleinbuchstabe. Korrekt groß muß es "SS" heißen.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

GPI hat geschrieben:Achja: Das ß ist ein kleinbuchstabe. Korrekt groß muß es "SS" heißen.
Hatten wir ja schonmal die Diskussion ;)

Problematisch bleibt hier weiterhin die Rückumwandlung ß -> SS -> ss und die unterschiedliche Anzahl an Zeichen.
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
computerkranker
Beiträge: 66
Registriert: 12.10.2004 21:21

Beitrag von computerkranker »

Achja: Das ß ist ein kleinbuchstabe. Korrekt groß muß es "SS" heißen.
Das kann man ja noch recht einfach lösen, weil man ja weiss was man ändern will.

Code: Alles auswählen

text$="Das Schloß mit dem Zeichen 'ÿ'"
text$=ReplaceString(UCase(ReplaceString(text$,"ß","ss")),"ß","ÿ")
Debug text$
Ausgabe: DAS SCHLOSS MIT DEM ZEICHEN 'ÿ'
:mrgreen:

...und hier wird es schon schwieriger.

Code: Alles auswählen

text$="Das Schloß mit dem Zeichen 'ÿ'"
text$=LCase(text$)
Debug text$
ReplaceString(text$,"ÿ","ß",2)
Debug text$
Ausgabe: das schloß mit dem zeichen 'ß'

sicher lösbar, aber halt nicht ganz so einfach.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

ich würde behaupten, man müsste die ganzen Zeichen zuerst escapen, dann die Funktion drüberlaufen lassen, nach den escapeten Zeichen suchen und diese passend zurückersetzen.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
bingo
Beiträge: 118
Registriert: 16.09.2004 18:33
Wohnort: thüringen
Kontaktdaten:

Beitrag von bingo »

Code: Alles auswählen

tmp.s = "Schloß"

Debug LCase(tmp) ;???
Debug UCase(tmp) ;???

Debug PeekS(CharUpper_(tmp));
Debug PeekS(CharLower_(tmp));
der direkte user32.dll-aufruf scheint es richtig zu machen ...

da läuft wohl was bis zum rand ???

Debug Asc(LCase("ß")) ; = 255 ???
1:0>1
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also IMHO liegt hier wirklich ein Bug vor.

Code: Alles auswählen

Debug UCase("ß")
Debug LCase(UCase("ß"))
die umsetzung müsste hin und her funktionieren, was nicht der fall ist.

wozu brauchst du das? willst du wörter komplett kleinschreiben, um sie durch nen parser zu jagen?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Es existiert bereits ein FIX!
http://www.purebasic.com/beta
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
computerkranker
Beiträge: 66
Registriert: 12.10.2004 21:21

Beitrag von computerkranker »

wozu brauchst du das? willst du wörter komplett kleinschreiben, um sie durch nen parser zu jagen?
Habe eine Artikelliste in Grossschrift und muss für die Ausgabe den Text in die normale Schreibweise(Erster Buchstabe gross) umwandeln. Kann mir aber vorerst mit obigen Beispiel gut helfen, da ein "ÿ" nicht in der Artikelliste vorkommt.

Der Fix ging ja mal schnell :allright:
Antworten