gabrixl
Goto Top

Bestimmtes Arrayfeld mit Variable aufrufen? - VBS

Hallo zusammen!

Ist es möglich ein Arrayfeld mit einer Variable aufzurufen, anstatt eine Zahl zu verwenden?

Das war meine Idee, aber ich kriege leider immer eine Datentypenkonflikt-Fehlermeldung
i = 0
do until i = UBound(arr)
     Msgbox(arr(i))
     i = i + 1
loop

Danke für jede Hilfe! face-smile

Content-Key: 336709

Url: https://administrator.de/contentid/336709

Printed on: April 26, 2024 at 07:04 o'clock

Member: Kraemer
Kraemer May 03, 2017 updated at 07:25:49 (UTC)
Goto Top
Moin,

was ist denn
arr
? Wie wurde das definiert?

Gruß
Mitglied: 132895
132895 May 03, 2017 updated at 07:31:11 (UTC)
Goto Top
Ich schätze dein Arrayinhalt lässt sich einfach nicht als String in einer MsgBox ausgeben, deswegen der Typkonflikt.

Viel einfacher geht das iterieren über alle Array items mit einem for each loop
for each itm in arr
    'tu was mit itm  
next
Gruß
Member: emeriks
emeriks May 03, 2017 at 07:32:59 (UTC)
Goto Top
Hi,
Du benutzt doch bereits eine Variable dafür?
In Zeile 3 nutzt Du die Variable "i" um das Feld arr(i) anzuzeigen.
Oder was willst Du jetzt?

E.
Member: gabrixl
gabrixl May 03, 2017 at 07:39:32 (UTC)
Goto Top
Hi,

Habe den Inhalt einer Textdatei gesplittet und in das Array eingelesen:

Set File = fso.OpenTextFile(path, 1)
lineOne = File.ReadAll
arr = Split(lineOne, "¦")  

Gruss
Member: emeriks
emeriks May 03, 2017 at 07:40:12 (UTC)
Goto Top
Und was war jetzt die Lösung?
Member: gabrixl
gabrixl May 03, 2017 at 07:41:54 (UTC)
Goto Top
Hi,
Ja so hätte ich das gerne aber das funktioniert bei mir irgendwie nicht, weiss nicht wieso.
Tut mir leid falls ich mich unverständlich ausgedrückt habe...
Ich möchte das anhand von Wert (i) das Arrayfeld ausgegeben wird, dass wenn i den wert 4 hat, das auch das Arrayfeld 4 augegeben wird.

Gruss
Member: gabrixl
gabrixl May 03, 2017 at 07:43:25 (UTC)
Goto Top
Gab noch keine Lösung, habe mich mit dem Forum noch nicht zurecht gefunden. Mein Fehler.
Member: emeriks
emeriks May 03, 2017 at 07:43:35 (UTC)
Goto Top
Kann es sein, dass Du vergisst, dass der Index Null-basiert ist? Feld 4 hat den Index 3! face-wink
Mitglied: 132895
132895 May 03, 2017 updated at 07:47:19 (UTC)
Goto Top
lines = Split(fso.OpenTextFile(path, 1).ReadAll(),vbNewline)
for each line in lines
    cols = Split(line, "¦",-1,1)  
    for each col in cols
        Msgbox col
    next
next
https://www.w3schools.com/asp/func_split.asp
Member: gabrixl
gabrixl May 03, 2017 at 07:52:05 (UTC)
Goto Top
Ups! Habe das Problem eben gefunden. Das Array wird in einem Sub erstellt und ist somit nicht Global. Dummer Anfänger Fehler..

Danke für eure Hilfe!

Gruss