Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VB2010 - einzelne Einträge eines Arrays in ein anderes Array kopieren

Frage Entwicklung Visual Studio

Mitglied: Windows-Spieler

Windows-Spieler (Level 1) - Jetzt verbinden

30.08.2012 um 21:55 Uhr, 3764 Aufrufe, 10 Kommentare

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.


01.
Dim a_dateien(list_Foto.Nodes.Count) As String    'hier muss der Fehler liegen 
02.
For i As Integer = 0 To list_Foto.Nodes.Count 
03.
    If list_Foto.Nodes.Item(i).Checked = True Then 
04.
        Array.Copy(filea, i, a_dateien, i, 1)     'hier taucht der "Argument Exception" auf 
05.
    End If 
06.
Next
Ich freue mich über jede Antwort, die bei mir den Kronleuchter zum leuchten bringt

LG

Windows-Spieler
Mitglied: TsukiSan
31.08.2012 um 03:06 Uhr
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:
01.
dim a(2) 'mein Array deklariert 
02.
for i = 0 to 2 
03.
    a(i) = i + 1 
04.
next
Noch ein Beispiel, was dir etwas entgegenkommt in deinem Beipiel.
Du willst deinen "...Count" als höchste Arraynummer deklarieren:
01.
blabla_Count = 5 
02.
ReDim a_dateien(blabla_Count) 
03.
For i = 0 To blabla_Count 
04.
    a_dateien(i) = "Text..." & i 
05.
Next
Probier mal und du wirst deine kleinen Fehler oben ziemlich schnell finden.

Gruss
Tsuki
Bitte warten ..
Mitglied: MrTrebron
31.08.2012 um 07:12 Uhr
Hallo Tsuki,

Also entweder ich hab wegen der frühen Stunde die Augen noch nicht richti auf oder dein letztes Beispiel läuft auch auf einen Fehler.

Du gibst dem Array eine Größe von 5 die For Schleife wirst du aber 6 mal durchlaufen.

Gruß
Norbert
Bitte warten ..
Mitglied: TsukiSan
31.08.2012 um 08:09 Uhr
Moin Norbert,

erstens sind es nur Beispiele von mir und es
sollte trotzdem funktionieren, da das Array im zweiten Code-Beispiel von
0 bis 5 - macht also 6! - deklariert ist

Ich hole mir erst mal einen Kaffee

Gruss
Tsuki
Bitte warten ..
Mitglied: Bubele
31.08.2012 um 08:19 Uhr
Zitat von TsukiSan:
...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.
Bitte warten ..
Mitglied: chaotize
31.08.2012 um 08:36 Uhr
Also kenn mich nicht wirklich mit Visual Studio aus aber td müsste es doch die möglichkeit geben beispielsweise anstatt dem Array eine generische List zu verwenden. Zumindest dürftest du damit keine "Platzprobleme" haben. Wäre nur mal ein Tipp. ;)
Bitte warten ..
Mitglied: MrTrebron
31.08.2012 um 08:44 Uhr
Servus Tsuki,

wenn ich dem Array sage es ist 5 groß, dann heißt das beim Array (Nullbasierender Index) 0 - 4.
In deiner For Schleife gehe ich aber von 0 - 5 und das macht 6.

Gruß
Norbert

PS: Nach dem ersten Kaffee
Bitte warten ..
Mitglied: TsukiSan
31.08.2012 um 09:04 Uhr
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
01.
dim a(5)
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
Bitte warten ..
Mitglied: TsukiSan
31.08.2012 um 09:39 Uhr
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
01.
blabla_Count = 5 
02.
ReDim a_dateien(blabla_Count)
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
Bitte warten ..
Mitglied: MrTrebron
31.08.2012 um 09:44 Uhr
Servus Tsuki,

da merkt man mal wie lange es her ist das ich mit Arrays gearbeitet hab die ich mit einer For i -Schleife durchlaufen hab.
(In meinen Fällen nutze ich immer For Each)

Gruß
Bitte warten ..
Mitglied: TsukiSan
31.08.2012, aktualisiert um 09:52 Uhr
Hallo Norbert,

bei mir ist das genauso. Man arbeitet damit, ohne noch viel drüber nachzudenken und die
meisten Fachbegriffe muss man sich erst einmal wieder in Erinnerung rufen.

Bin ja auch kein Lehrer, sondern arbeite damit

Schönes We

Tsuki
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Festplatten, SSD, Raid
Performancesteigerung des RAID Arrays möglich? (13)

Frage von takvorian zum Thema Festplatten, SSD, Raid ...

Windows Netzwerk
IIS - anderes Netz zulassen (3)

Frage von survial555 zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...