Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Stringfunktionen

Auch Umlaute in Groß und klein umwandeln

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.Redakteurytwinky 08.10.2010

Die Funktionen von FB versagen, wenn es darum geht, die deutschen Umlaute auch mit umzuwandeln. Hier kommt Transumlaut ins Spiel. Es benutzt erst die normalen lcase/UCase-Funktionen und prüft dann, ob noch Umlaute da sind(und ganz ohne Mid()..):

'+-----------------------------------------------------------------------------------+
'|    Header: Bestimmen der Übergabeparameter                                        |
'|    AnzeigeCheck:|Il1 sind Alt-0124, Großes i, kleines L, Eins „ä”öüáߎę֚Üñ±¸©ø°|
Const Author="TransUmlaut.Bas v017f ¸2007 by ytwinky, MD"'                           |
'|           (Tastenkombination: keine)                                              |
'|                                                                                   |
'|    Zweck : Schablone für neue Dateien                                             |
'+-----------------------------------------------------------------------------------+
'(Anmerkung zu den Sonderzeichen: zuerst steht das DOS-Zeichen, danach das Windowszeichen)
Const Lf=!"\n"
Declare Function LCaseUml(byVal Msg As String) As String
Declare Function UCaseUml(byVal Msg As String) As String
Dim i As Integer
Dim z As String
Print __FB_Signature__
Print "Das Original: J”rg Zhlke, MD, aka ytwinky" &Lf
z="Žnderung(Ž™š„”): J”rg Zhlke, MD"
Print "Text:" &z
Print "Groá:" &UCaseUml(z) &Lf
Print "Text :" &z
Print "Klein:" &LCaseUml(z) &Lf
Print "Text :" &z &Lf
z="L”wenbr„u.."

Print "Und nun:" &z
Print UcaseUml("Grossgeschrieben:" &z)
Print LCaseUml("Kleingeschrieben:" &z);
Print "Eniki..";
Sleep

Function UCaseUml(byVal Msg As String) As String
  Dim As String s=UCase(Msg), AsciiUmlKl="„”", AsciiUmlGr="Ž™š"
  Dim As Integer Found
  For i As Integer=0 to 2
    Do
      Found=Instr(Found+1, s, Chr(AsciiUmlKl[i]))
      s[Found-1]=AsciiUmlGr[i] 'Achtung: Found benutzt InStr()! 1-basiert..
    Loop Until Found=0
  Next
  Return s
End Function

Function LCaseUml(byVal Msg As String) As String
  Dim As String s=LCase(Msg), AsciiUmlKl="„”", AsciiUmlGr="Ž™š"
  Dim As Integer Found
  For i As Integer=0 to 2
    Do
      Found=Instr(s, Chr(AsciiUmlGr[i]))
      s[Found-1]=AsciiUmlKl[i] 'Achtung: Found benutzt InStr()! 1-basiert..
    Loop Until Found=0
  Next
  Return s
End Function
End

..fröhliches Umformen^^
Gruß
ytwinky


Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 22.08.2007 von Redakteurytwinky angelegt.
  • Die aktuellste Version wurde am 08.10.2010 von Redakteurytwinky gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen