Code-Beispiel
Euro-Zeichen eingeben und anzeigen
Ich habe mich mal daran gemacht, wie ein Euro-Zeichen auf dem Bildschirm angezeigt werden kann.
Es gibt die verschiedensten Herangehensweisen, doch möchte ich meine Version präsentieren.
Mein lauffähiges DEMO-Programm besteht aus zwei Unterprogrammen.
SUB Eingeben:
Bei der Eingabe des String "Txt" habe ich die Tastatur auf alle (meinerseits!) notwendigen
Tasten eingeschränkt! WICHTIG: Für die Eingabe des Euro-Zeichens, nicht die Tastenkombination
(AltGr) und (E) sondern die Kombination (Alt) und (E) benutzen.
Einige kleine Erläuterungen, wie ich vorgegangen bin:
1 - Äußere DO...LOOP: Eingabe von Taste (Enter/Return) "ASCII 13", beendet diese.
2 - Innere DO...LOOP: Schleife für die Tasten-Eingabe.
3 - "ASCII-Wert" der Tasteneingabe wird in "I" geschrieben.
4 - Tastenkombination (Alt) und (E) für Euro. "I" wird auf "ASCII 128" gesetzt.
5 - Wert von "I" mit "ASCII" vergleichen (auswerten).
6 - Bei erlaubten Tasten: Innere DO...LOOP verlassen.
7 - Bei Taste (BackSpace) und Sting "Txt" mit Inhalt: Innere DO...LOOP verlassen.
8 - Bei Taste (Enter/Return): Äußere DO...LOOP verlassen.
9 - String "Txt" erweitern.
10 - Mit Taste (BackSpace) letztes Zeichen (auch aus String "Txt") entfernen.
11 - Kontrollanzeige mit Euro-Zeichen.
SUB Anzeigen (T AS STRING):
Zum Anzeigen des Euro-Zeichens muß die bestimmte Position im Übergabewert String "T"
den ASCII-Wert 128 aufweisen.
So kann mann dieses Unterprogramm auch anderweitig verwenden!
'' --------------------------------------------------------------
'' Programm: Text mit Eurozeichen (Eingabe / Anzeigen)
'' letztes Datum: 06.05.2023 - Sundboy60 - lauffähiges DEMO
'' --------------------------------------------------------------
WIDTH 190, 62
DECLARE SUB Eingeben
DECLARE SUB Anzeigen (T AS STRING)
DIM SHARED AS STRING Txt
? !"\10 Eingabe: ";
Eingeben
? !"\10 Ausgabe: ";
Anzeigen (Txt)
? !"\10 Programmende - Taste ";
GETKEY
CLS
END
'' --- eingeben, auswerten, umwandeln
SUB Eingeben
Txt = ""
DO '' 1
DIM AS INTEGER I
DIM AS STRING IN
DO '' 2
IN = INKEY
I = ASC(MID(IN, 1, 1)) '' 3
IF ASC(MID(IN, 2, 1)) = 18 THEN I = 128 '' 4
SELECT CASE I '' 5
CASE 13, 21, 32 TO 93, 95, 97 TO 126, _
128, 129, 132, 142, 148, _
153, 154, 230, 248, 252, 253 '' 6
EXIT DO
CASE 8 : IF LEN(Txt) > 0 THEN EXIT DO '' 7
END SELECT
LOOP
IF I = 13 THEN EXIT DO '' 8
Txt & = CHR(I) '' 9
IF I = 8 THEN '' 10
? !"\8 ";
Txt = MID(Txt, 1, LEN(Txt) - 2)
END IF
IF I = 128 THEN '' 11
? WCHR(8364);
ELSE
? CHR(I);
END IF
LOOP
?
END SUB
'' --- anzeigen mit Euro-Zeichen
SUB Anzeigen (T AS STRING)
FOR I AS INTEGER = 1 TO LEN(T)
IF ASC(MID(T, I, 1)) = 128 THEN
? WCHR(8364);
ELSE
? MID(T, I, 1);
END IF
NEXT
?
END SUB
Wenn man nur die reine Ausgabe des Euro-Zeichens benötigt,
reicht eine "Super Einfache" Zeile dafür aus.
Es ist allerdings nur eine Ausgabe auf dem Monitor möglich!
(Auf dem Drucker? Das weiß der Fuchs!)
Beispiele: (zum testen!)
? Variable; WCHR(8364)
? Variabe; WCHR(8364); Variable
Viele erdenkliche Kombinationen sind moeglich ...
Variable kann auch reiner Text sein, wie z.B. "Geldbetrag 100"
ACHTUNG: Das reine Euro-Zeichen in einen String einzubinden z.B.
Text & = WCHR(8364) ist nicht möglich.
Zusätzliche Informationen und Funktionen |
- Das Code-Beispiel wurde am 08.05.2023 von Sundboy60 angelegt.
- Die aktuellste Version wurde am 08.05.2023 von Sundboy60 gespeichert.
|
|