Moin... irgendwie habe ich gerade eine leichte Blockade.
Ich habe zwei Zahlen, einmal den Count einer Liste und einmal das aktuelle Element (anhand einer Zahl)
bspw. Count 125, aktuelles Element ist das erste, oder 17.te, oder 112.te und so weiter.
Die Ergebnisse eines durchlaufens der Liste werden am Ende numeriert ausgegeben, es soll ein einfaches Formatierungstool sein.
Sprich bei Count 30 z.B. sollte es so aussehen:
01
02
03
04
...
30
Bei 125, wie aktuell so:
001
002
003
...
045
046
047
...
125
Eine Sub bekommt von mir als Referenz den String, welcher so am Ende aussehen soll, den aktuellen Index sowie den maximalen Count.
Natürlich funktioniert es nicht ganz...
(Ich habe:
001
002
003
...
0030
0031
0032
...
000101
000102
000103
...
)
Ich komme gerade echt nicht dahinter, wo meine Logik falsch ist bzw. wo mein Denkfehler liegt...
Ich versuche durch die Schleifen herauszufinden, wie viele Stellen eine Zahl hat, indem ich sie immer wieder durch 10 Teile, und subtrahiere am Ende, um die Differenz dessen heraus zu finden... Zumindest habe ich das vor, aber irgendwas stimmt da nciht... und komme leider nicht drauf im Moment.
Weis da einer Rat oder hat einen Tipp?
Edit: Hat sich erledigt ._.
Int.ToString.Length...
Ich habe zwei Zahlen, einmal den Count einer Liste und einmal das aktuelle Element (anhand einer Zahl)
bspw. Count 125, aktuelles Element ist das erste, oder 17.te, oder 112.te und so weiter.
Die Ergebnisse eines durchlaufens der Liste werden am Ende numeriert ausgegeben, es soll ein einfaches Formatierungstool sein.
Sprich bei Count 30 z.B. sollte es so aussehen:
01
02
03
04
...
30
Bei 125, wie aktuell so:
001
002
003
...
045
046
047
...
125
Eine Sub bekommt von mir als Referenz den String, welcher so am Ende aussehen soll, den aktuellen Index sowie den maximalen Count.
Visual Basic-Quellcode
- Private Sub MakeNumber(ByRef inputStr As String, index As Integer, count As Integer)
- Dim zeros As Integer = 0
- While Not (CInt(count / 10)) < 10
- zeros += 1
- count = CInt(count / 10)
- End While
- Dim oldId As Integer = index
- Dim zerosIndex As Integer = 0
- While Not (CInt(index / 10)) < 10
- zeros += 1
- index = CInt(index / 10)
- End While
- Dim realZeros As Integer = zeros - zerosIndex
- For i As Integer = 0 To realZeros
- inputStr += "0"
- Next
- inputStr += oldId.ToString
- End Sub
Natürlich funktioniert es nicht ganz...
(Ich habe:
001
002
003
...
0030
0031
0032
...
000101
000102
000103
...
)
Ich komme gerade echt nicht dahinter, wo meine Logik falsch ist bzw. wo mein Denkfehler liegt...
Ich versuche durch die Schleifen herauszufinden, wie viele Stellen eine Zahl hat, indem ich sie immer wieder durch 10 Teile, und subtrahiere am Ende, um die Differenz dessen heraus zu finden... Zumindest habe ich das vor, aber irgendwas stimmt da nciht... und komme leider nicht drauf im Moment.
Weis da einer Rat oder hat einen Tipp?
Edit: Hat sich erledigt ._.
Int.ToString.Length...
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kagurame“ () aus folgendem Grund: Lösung gefunden