VB2010 - einzelne Einträge eines Arrays in ein anderes Array kopieren
vorhanden:
Array "filea" mit den Dateien eines Verzeichnisses, String
ListView "list_foto" mit ebendiesen Dateien, allerdings ohne Pfad, reiner Dateiname
Array "a_dateien", welches alle Dateien aus der Listview mit Pfad enthalten soll, String
Hallo,
mein Problem besteht wohl darin, dass ich auch nach Jahren noch immer keinen blassen Schimmer von Arrays habe. Folgender Quelltext löst den Fehler aus, dass mein Array "a_dateien" nicht groß genug ist, obwohl ich es eigentlich groß gemacht habe, dass es alle Dateien aufnehmen könnte.
Ich freue mich über jede Antwort, die bei mir den Kronleuchter zum leuchten bringt
LG
Windows-Spieler
Array "filea" mit den Dateien eines Verzeichnisses, String
ListView "list_foto" mit ebendiesen Dateien, allerdings ohne Pfad, reiner Dateiname
Array "a_dateien", welches alle Dateien aus der Listview mit Pfad enthalten soll, String
Hallo,
mein Problem besteht wohl darin, dass ich auch nach Jahren noch immer keinen blassen Schimmer von Arrays habe. Folgender Quelltext löst den Fehler aus, dass mein Array "a_dateien" nicht groß genug ist, obwohl ich es eigentlich groß gemacht habe, dass es alle Dateien aufnehmen könnte.
Dim a_dateien(list_Foto.Nodes.Count) As String 'hier muss der Fehler liegen
For i As Integer = 0 To list_Foto.Nodes.Count
If list_Foto.Nodes.Item(i).Checked = True Then
Array.Copy(filea, i, a_dateien, i, 1) 'hier taucht der "Argument Exception" auf
End If
Next
Ich freue mich über jede Antwort, die bei mir den Kronleuchter zum leuchten bringt
LG
Windows-Spieler
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 190510
Url: https://administrator.de/contentid/190510
Ausgedruckt am: 05.11.2024 um 23:11 Uhr
10 Kommentare
Neuester Kommentar
Hallo Windows-Spieler,
so schwer sind die Arrays nicht! Lies dich mal in Fachlektüre ein.
ganz kleines Beispiel:
eindimensionales Array:
a(0) = 1
a(1) = 2
a(2) = 3
heisst:
Noch ein Beispiel, was dir etwas entgegenkommt in deinem Beipiel.
Du willst deinen "...Count" als höchste Arraynummer deklarieren:
Probier mal und du wirst deine kleinen Fehler oben ziemlich schnell finden.
Gruss
Tsuki
so schwer sind die Arrays nicht! Lies dich mal in Fachlektüre ein.
ganz kleines Beispiel:
eindimensionales Array:
a(0) = 1
a(1) = 2
a(2) = 3
heisst:
dim a(2) 'mein Array deklariert
for i = 0 to 2
a(i) = i + 1
next
Noch ein Beispiel, was dir etwas entgegenkommt in deinem Beipiel.
Du willst deinen "...Count" als höchste Arraynummer deklarieren:
blabla_Count = 5
ReDim a_dateien(blabla_Count)
For i = 0 To blabla_Count
a_dateien(i) = "Text..." & i
Next
Probier mal und du wirst deine kleinen Fehler oben ziemlich schnell finden.
Gruss
Tsuki
Zitat von @TsukiSan:
...und es
sollte trotzdem funktionieren, da das Array im zweiten Code-Beispiel von
0 bis 5 - macht also 6! - deklariert ist
...und es
sollte trotzdem funktionieren, da das Array im zweiten Code-Beispiel von
0 bis 5 - macht also 6! - deklariert ist
Also das weiß ich als C++-Newbie (habs nur bis objektorientiert gelernt also Basics) sogar. In der Programmiersprache zählt man immer die 0 mit. Es sei denn man sagt ihm er soll bei 1 anfangen.
Hallo Nobert,
hoffe, dein Kaffee war genau so lecker wie meiner
Also ich habe das mal mit VBS und VB6 eben probiert und beides
bringt keinen Fehler weil wenn ich schreibe
dann heisst das:
a(0)
a(1)
a(2)
a(3)
a(4)
a(5)
Berichtige mich, wenn ich Unrecht habe.
Hole mir gleich noch einen Kaffee
Gruss
Tsuki
hoffe, dein Kaffee war genau so lecker wie meiner
Also ich habe das mal mit VBS und VB6 eben probiert und beides
bringt keinen Fehler weil wenn ich schreibe
dim a(5)
a(0)
a(1)
a(2)
a(3)
a(4)
a(5)
Berichtige mich, wenn ich Unrecht habe.
Hole mir gleich noch einen Kaffee
Gruss
Tsuki
Also, wenn Nobert und ich schon etwas über Arrays diskutieren, dann sollte es sinnhaft für den TO sein.
Nobert hat mit seinem Hinweis erst einmal völlig Recht!
Wenn ich ein 5-Elemente-Array habe dann bedeutet das ArryName(0 bis 4).
Da die meisten Arrays Nullbasierend sind - ich gehe mal bei VB2010 auch davon aus! -
ergibt sich in meinem Beispiel ganz oben
ein 6-Elemente-Array (oder das Array ist 6 groß).
Was der TO schon richtig erfasst hat ist seine Zeile1 in seinem Code-Schnipsel.
Bei "irgendwas-COUNT" würde ich mindestens mal einen Integer erwarten und diesen
nicht mit as String verwirren.
In seiner Zeile4 weiss das Programm nicht, welches Array-Element genommen werden soll.
Da ich VB2010 nicht habe bitte mal prüfen, ob meine Ideen so richtig sind.
Gruss
Tsuki
Nobert hat mit seinem Hinweis erst einmal völlig Recht!
Wenn ich ein 5-Elemente-Array habe dann bedeutet das ArryName(0 bis 4).
Da die meisten Arrays Nullbasierend sind - ich gehe mal bei VB2010 auch davon aus! -
ergibt sich in meinem Beispiel ganz oben
blabla_Count = 5
ReDim a_dateien(blabla_Count)
Was der TO schon richtig erfasst hat ist seine Zeile1 in seinem Code-Schnipsel.
Bei "irgendwas-COUNT" würde ich mindestens mal einen Integer erwarten und diesen
nicht mit as String verwirren.
In seiner Zeile4 weiss das Programm nicht, welches Array-Element genommen werden soll.
Da ich VB2010 nicht habe bitte mal prüfen, ob meine Ideen so richtig sind.
Gruss
Tsuki