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!

Tutorial

Umlaute richtig darstellen

von MitgliedEternal_PainSeite 2 von 2

Nun, wir könnten unsere Texte in Zukunft in etwa so schreiben;

?"Im Garten haben wir einen Apfelbaum, mit unglaublich vielen "+chr(142)+"pfeln."

Die Ausgabe sollte nun so aussehen;

Im Garten haben wir einen Apfelbaum, mit unglaublich vielen Äpfeln.

Das sieht doch schon ganz gut aus :o)
Aber auf Dauer doch recht umständlich, wie ich persönlich finde.

Viel einfacher würde es doch gehen, wenn wir eine Funktion hätten, die uns die Arbeit abnehmen könnte?!

Wer mit Windows arbeitet, wird sich freuen, zu hören, dass es dafür bereits eine Funktion gibt :o)
An dieser Stelle vielen Dank an Volta.

Beispiel:

#INCLUDE "windows.bi"

'Hier Deklarieren wir uns einen String in den wir ganz normal unseren Text schreiben.
    DIM MeinText AS String

'Wir schreiben mit unseren ANSI Zeichen einen Beispiel Text
    MeinText="ABCdefÄÖÜäöüéÉ"

'Hier wird der ANSI Text ins ASCII Format uebersetzt!
    CharToOem MeinText, MeinText

'Die übersetzte Ausgabe auf den Bildschirm bringen
    ?MeinText
sleep

Das sieht doch hervorragend aus, alle Umlaute werden nun richtig angezeigt. Aber was mach ich nun, wenn ich kein Windows nutze oder nicht auf die Windows API zugreifen kann oder will?

Da bleibt einem nichts anderes übrig, als diese Funktion selbst zu schreiben.

Ich bin doch aber sicher nicht der Erste mit diesem Problem, da muss es doch schon was Fertiges geben?

Richtig! Das gibt es wirklich :o)
Hier einmal eine Version von ytwinky,
die im durchschnitt nicht nur kaum messbare ms schneller war
als eine von mir, nein, sie sieht dazu auch noch viel besser aus ;o)

FUNCTION uANSI2ASCII (BYVAL ConvertString AS STRING) AS STRING
  DIM AS STRING OutString=ConvertString
  Static As UByte AscAnsDat(128)={ _
           63,  63,  39, 159,  34,  46, 197, 206,  94,  37,  83,  60,  79, 63, 63, 63, _
           90,  39,  39,  34,  34,   7,  45,  45, 126,  84, 115,  62, 111, 63, 122, 89, _
          255, 173, 189, 156, 207, 190, 221, 145, 149, 184, 166, 174, 170, 240, 169, 238, _
          248, 241, 253, 252, 239, 230, 244, 250, 247, 251, 167, 175, 172, 171, 243, 168, _
          183, 181, 182, 199, 142, 143, 146, 128, 212, 144, 210, 211, 222, 214, 215, 216, _
          209, 165, 227, 224, 226, 229, 153, 158, 157, 235, 233, 234, 154, 237, 232, 160, _
          225, 133, 131, 198, 132, 134, 145, 135, 138, 130, 136, 137, 141, 161, 140, 139, _
          208, 164, 149, 162, 147, 228, 148, 246, 155, 151, 163, 150, 129, 236, 231, 152}
    FOR i AS INTEGER=0 TO LEN(OutString)-1
      If OutString[i]>127 Then OutString[i]=AscAnsDat(OutString[i]-128)
    NEXT i
  RETURN OutString
END FUNCTION

Hier findet Ihr auch noch eine version von mir
Externer Link!myANSI2ASCII

Viel Spass damit :o)

 

Gehe zu Seite Gehe zu Seite  1  2  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 19.08.2007 von MitgliedEternal_Pain angelegt.
  • Die aktuellste Version wurde am 23.08.2007 von MitgliedEternal_Pain gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen