Und noch ein Hinweis.
Du brauchst nicht für jeden Buchstaben einen eigene Lookup Tabelle.
Ein 'Buchstabe' ist im Computer auch nichts anderes als eine Zahl. Dazu
gibt es die ASCII Tabelle, die einem sagt, welche Codezahl für welchen
Buchstaben steht. D.h. dein Buchstabe ist im Grunde bereits eine Zahl.
Hast du aber diese Zahl, dann ist es ein leichtes auszurechnen, wo in
einer einzigen großen Lookup die 8 Bytes für diesen Buchstaben beginnen,
denn du weißt ja, dass für jeden Buchstaben genau 8 Bytes notwendig
sind. Also beginnt der erste Buchstabe (mit dem Code 0) in der Lookup
Tabelle an der Position 0, der Buchstabe mit dem Code 1 beginnt an der
Position 8, der mit dem Code 2 an der Position 16 und so weiter.
Im übrigen willst du auch nicht die MID Funktion benutzen, um dir ein
Zeichen nach dem anderen aus dem String rauszuholen. Denn von MID
kriegst du ja keine Zeichen, sondern du kriegst wieder einen String.
Genau das willst du aber nicht, denn so schaffst du nicht den Übergang
von Strings zu einzelnen Zeichen.
Du kannst aber in BASCOM in einem String genau wie in einem Array ganz
einfach auf die einzelnen Zeichen zugreifen
1 | DIM MyEinzelByte AS BYTE
|
2 | DIM MyStrlen AS BYTE
|
3 | DIM MyIndex AS BYTE
|
4 |
|
5 | MyString = "Hello, World"
|
6 | MyStrlen = LEN(MyString)
|
7 | FOR MyIndex = 1 TO MyStrlen
|
8 | MyEinzelByte = MyArray(MyIndex)
|
9 | NEXT
|
In "MyEinzelByte" liegt dann genau 1 Zeichen aus dem String vor. Und da
es sich bei MyEinzelByte bereits um den Datentyp Byte handelt, kannst du
dann auch ganz einfach damit rumrechnen. Zum Beispiel, indem du
zunächste den ASCII Code für ein Leerzeichen abziehst, denn ein
Leerzeichen ist im ASCII Code das erste Zeichen mit einer sichtbaren
Repräsentierung. Die davor liegenden Zeichen haben keine sichtbare
Darstellung, würden also in der Lookup Tabelle nur Platz verbrauchen.
Und dann die so erhaltene Zahl mit 8 multiplizieren um sie als Index in
die große Lookup Tabelle zu benutzen, aus der du dann die 8 Bytes
rauskriegst, die in deinen Display Speicher kopiert werden müssen.
http://www.rn-wissen.de/index.php/Bascom_Strings_und_Bytes