Ikke for at stjæle kode eller noget, men her er lige et alternativ som samler det bedste fra jeres forslag:
Dim Numbers() As Byte
ReDim Numbers(Len(Trim$(txtNumbers.Text))) As Byte
Dim I As Integer
For I = 1 To Len(txtNumbers.Text)
Numbers(I) = Val(Mid$(Trim$(txtNumbers.Text), I, 1))
Next I
Og her er lidt hjælp til at vælge:
Thomases første forslag bruger en del ram, VBCoders forslag bruger en del mindre og mit forslag bruger endnu mindre! Til gengæld kører min kode lidt langsomere da den skal gøre nogle ting flere gange, men det betyder næsten ingenting!
- Som du måske ved så fjerner Trim$() unødvendige mellemrum fra begge sider af tekststrengen. Spørgsmålet er hvor tit man får brug for det, men det er nok meget godt at have med.
- Du ved måske også at Val() omdanner et tegn (ikke tal) til 0 hvilket gør at man undgår fejl hvis brugeren kommer til at skrive et bogstav. Du skal så lige overveje om du vil have den med, for det kan godt være irriterende hvis programmet bare forsætter med at arbejde med et forkert array. Hvis man nu ikke selv ligger mærke til skrivefejlen kan resultatet være misinformerende...
- 'Redim' sørger for at give nogle fleksible arrays så man undgår at bruge mere hukommelse end nødvendigt.
// Your brain is your weapon, do not waste it!!