PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD Darstellung (Zentrieren)



hardstyleroxx
11.12.2005, 17:59
Ich möchte die Drehzahl auf einem LCD darstellen lassen. Es ist ein 4*20.

Ich möchte gerne 0 als Platzhalter verwenden oder gibt es einen Befehl zum Zentrieren?

** 00000 rpm **

** 00015 rpm **

** 34612 rpm **

So soll das mit den Nullen als Platzhalter aussehen (Obwohl mir das mit dem Zentrieren lieber wäre!).

Jemand ne idee wie ich das hinbekomme?

Stromi
11.12.2005, 18:08
Guckst du in die Hilfe,
Befehl Format

Marco78
11.12.2005, 18:22
1. Die Variable mit STR umwandeln und dann mit FORMAT einer vestimmten Länge zuordnen.
Dann hast du die 0000 immer davor.

2. Zentriert passt hier eher weniger. Rechtsbündig wäre passender.
Mit LEN kannst du die Länge des Textes ruasbekommen. Ich denke mal auch nur für Strings. Musst du dann wieder mit STR umwandeln.
Die Stelle der Einer ist ja immer die gleiche. Sagen wir mal 10.
In der Variable A könntest du die Länge haben.
LOCATE 1,10-A (evtl musst du das getrennt ausrechnen lassen und dann LOCATE 1,B verwenden)
LCD RPM
Aber zuerst musst du die alte Zahl mit Leerzeichen überschreiben. Wenn du mal 10000 RPM hattest und als nächstes hast du 100 RPM steht sonst auf dem LCD 10100 weil die alten Stellen nicht gelöscht wurden.

hardstyleroxx
11.12.2005, 19:27
Hat vielleicht jemand mal einen Code schnippsel? Mit STR hab ich noch nie was gemacht und ich versteh das erlichgesagt auch nicht.
Habe mir das gerade mal in der Hilfe angesehen, bringt mich aber auch nicht weiter.

Marco78
11.12.2005, 20:00
Hat vielleicht jemand mal einen Code schnippsel?
Dim A As Byte , S As String * 10
A = 123
S = Str(a)
Print S ' 123
End

Das wäre z.B. einer.
Er kommt dir sicherlich bekannt vor. Es ist der aus der Hilfe.
Es ist aber schwer dir zu helfen ohne zu wissen, was du nicht verstehst.

Mit der Suche habe ich alleine im Bascom-Unterforum 43 Beiträge zum Thema STR gefunden. Diesen abgezogen macht noch weitere 42 in denen es vorkommt.
In einigen ist es evtl nur am Rande erwähnt. Aber in anderen geht es genau im dieses Thema auch im Bezug auf LCD-Ausgabe.

Wichtig zu wissen ist da evtl noch, das einige Funktionen/Operationen nur mit bestimmten Variablentypen funktioniert. Wie bei FORMAT. Nur ein String kann mit FORMAT formatiert werden. Dazu muss man dann andere Typen halt umwandeln.
Oder man kann bestimmte Operationen nur mit Variablen vom gleichen Typ durchführen.

hardstyleroxx
11.12.2005, 20:07
Ich verstehe nicht was mir STR bringen soll bzw. wofür das gut ist. Ich werde nun mal ein bisschen die suche bemühen und gucken ob ich was brauchbares finde. Falls nein meld ich mich nochmal.

Marco78
11.12.2005, 20:10
Ich verstehe nicht was mir STR bringen soll bzw. wofür das gut ist.



Wichtig zu wissen ist da evtl noch, das einige Funktionen/Operationen nur mit bestimmten Variablentypen funktioniert. Wie bei FORMAT. Nur ein String kann mit FORMAT formatiert werden. Dazu muss man dann andere Typen halt umwandeln.


Du musst deine RPM was sicherlich nur eine Zahlvariable ist erst in einen String umwandeln, um die Nullen mit FORMAT davor zu setzen.

Dim RPM as Integer
Dim RPM2 as String*5
RPM=123
RPM2=STR(RPM)
RPM2=FORMAT(RPM2,"00000")
LCD RPM2 'auf dem LCD erscheint jetzt 00123

Oder Plan B, die Anzeige rechtsbündig ausführen.

hardstyleroxx
11.12.2005, 20:41
Danke schön, nun funktioniert es wie es soll.

Blos hab ich immernoch nicht verstanden was genau ein String ist.

Dim RPM2 as String*5 <- damit lege ich fest das der String 5 Zeichen lang ist?

Marco78
11.12.2005, 21:21
Genau.
Und ein String kann Zahlen und Buchstaben beinhalten.
Allerdings kann man mit Strings nicht rechnen. Wenn ein String eine Zahl beinhaltet und du diese verrechnen willst musst du den String umwandeln. Das geht wieder mit VAL()