Index ist nicht im Arraybereich
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
arbeit
array
auflistung
bauen
code
dank
datei
file
folgendes problem
gefundenen elemente
index
list
message
null
pfad
programm
show
spalten
system
verzeichnis
-
Hi, habe folgendes Problem:
Ich programmiere ein Programm mit dem man Verzeichnisse nach docx und txt Dateien durchsucht und diese dann auflistet und die Größe und die Seitenanzahl dazuschreibt (mit DataGridView). Nun funktioniert die Suchfunktion, die Seitenanzahlfunktion muss ich erst bauen, und ich möchte die gefundenen Elemente aus dem Array in die DataGridView schreiben (Mit dem Spalten Pfad, Seitenanzahl, Größe). Aber wenn ich das Programm ausführe kommt die Fehlermeldung: Index ist nicht im Arraybereich.
Code:
Auflistung
for(counterEintragen = 0; counterEintragen <= 10; counterEintragen++) { FileInfo file = null; try { file = new System.IO.FileInfo(result[counterEintragen]); } catch(Exception ee) { MessageBox.Show("FEHLER " + ee.Message); } dataGridView1.Rows.Add(result[counterEintragen], "in Arbeit", file.Length + " Bytes"); }
Danke schon im Vorhinein
rapgru -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo rapgru,
wahrscheinlich ist Dein Array kleiner als Du denkst.
Versuche mal folgendes:
for(counterEintragen = 0; counterEintragen < result.Length; counterEintragen++) { FileInfo file = null; try { file = new System.IO.FileInfo(result[counterEintragen]); } catch(Exception ee) { MessageBox.Show("FEHLER " + ee.Message); } dataGridView1.Rows.Add(result[counterEintragen], "in Arbeit", file.Length + " Bytes"); }
-
Danke für die Antworten, aber ich habe das Problem schon selbst gelöst ;)
Die for-Schleife habe ich durch eine foreach-Schleife ersetzt und es funktioniert!!
Aber wenn mir noch wer sagen könnte warum es nicht funktioniert hat wäre das gut.
LG
rapgru -
Naja das hat doch darkpandemic schon geschrieben. Du hast 11 mal iteriert, obwohl dein Array weniger als 11 Elemente hatte. Eine feste Zahl anzugeben ist normalerweise ungünstig, weil du ja auch einfach die Arraygröße benutzen kannst.
Und foreach macht auch nix anderes, als eine for-Schleife mit verstecktem Index und unveränderlicher Abbruchbedingung. -
Hi, noch ein tipp
Benutz am besten listen, die lassen sich meiner Meinung nach sehr gut für sowas nutzen.
Also sowas wie list <fileinfo> lt_fileinfo = new list <fileinfo>().
Dann kannst du einfach mit lt_fileinfo.count () die größe vergleichen, also sowas wie
countereintragen <lt_fileinfo.count () unschon bist du auf der sicheren seite.
Gruß -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage