Listbox.listcount formatiert ausgeben?

MacInternet

Mitglied
Hallo,

ich habe da auch noch mal eine Frage, auf die ich bisher auch nach ausgiebigen Studieren der Beiträge noch keine Antwort gefunden gefunden habe:

In einer Listbox werden aus einer Datei Strings ausgelesen und angezeigt. Damit man die Übersicht nicht verliert, werden diese Einträge durchnummeriert. Dazu ziehe ich einfach
Listbox.ListCount heran:

Visual Basic:
 ListBox1.AddItem (ListBox1.ListCount + 1) & " - " & (wort)

Was mich daran stört, ist, das die Strings nach rechts eingerückt werden, sobald die Zahl eine 10er oder 100er-Position erreicht:

...
8 - Eintrag 8
9 - Eintrag 9
10 - Eintrag 10
...

Ich versuche nun vergeblich, ListCount irgendwie zu überreden, die Zahlen grundsätzlich im 3er-Block zu schreiben, also eine oder zwei Nullen bei kleineren Zahlen voranzustellen

009 - Eintrag 9
010 - Eintrag 10
usw.

Aber wie ?

Mit

Visual Basic:
ListBox1.AddItem (Format(ListBox1.ListCount + 1, "##")) & " - " & (wort)

geht es jedenfalls NICHT.... Was auch logisch erscheint, schließlich ist ListCount ja kein String.

Kann mir bitte jemand sagen, ob es überhaupt möglich ist, eine solche Formatierung vorzunehmen?

Danke schon mal im voraus,
Mac
 
In dem Fall wie du es willst, würde ich das eher so schreiben:
Visual Basic:
ListBox1.AddItem Right("00" & Trim(CStr(ListBox1.ListCount + 1)), 3) & " - " & (wort)
Erklärung dazu:
CStr(Zahl) wandelt deine Zahl in einen String um.
Trim(Text) entfernt eventuell führende und hintenanstehende Leerzeichen, so dass nur mehr der Text übrig bleibt.
Right(Text, Anzahl) liefert aus einem String eine Anzahl von Zeichen, dabei wird vom rechten Rand begonnen. Im oa Beispiel stell ich erst noch 2 Nullen vor, wenn das ganze dann länger als 3 Stellen ist werden die überschüssigen Nullen links ignoriert.


Der Doc!
 
Ganz herzlichen Dank für die schnelle und weiterführende Antwort! :)

Ich hoffte eher, eine Art Formatierung angeben zu können, weil die Daten ja in etlichen Routinen weiterverarbeitet werden und jede einzeln angepasst werden muß, trotzdem ist es wesentlich einfacher als ich dachte - mit dem Umwandeln der Zahl in einen String, da dies ja nur bei der Ausgabe erforderlich ist. Deswegen ist dieser Weg durchaus gehbar.

Also nochmals herzlichen Dank und - Bewertung folgt natürlich sofort! :)

Mac
 
Hallo, das geht schon wie Du es machen wolltest.
Du hast nur falsch formatiert.

Versuch´s mal so:
Code:
ListBox1.AddItem (Format(ListBox1.ListCount + 1, "00#")) & " - " & (wort)
 
Und es geht tatsächlich so!! Klasse, Danke!

Hätte ich nicht gedacht... *freu*

Auch Dir meinen herzlichsten Dank und - natürlich - Bewertung folgt! ;-)

Gruß Mac
 
Zurück