schnubber - Do 03.05.12 11:21
Titel: Problem bei der Ausgabe
Hallo Leute,
hab ein kleines problem was die ausgabe in einer richTextBox betrifft.
Und zwar:
Mein script speichert daeinamen aus nem bestimmten ordner in eine variable. Die kann ich mir mit MessageBox gemütlich nacheinander ausgeben lassen. Auch in der Console nach wiederholtem Enter drücken kommen die namen nach einander bis alle durch sind, dann geht die Console zu.
In der textBox / richTextBox wird aber immer nur der vom Programm erstgegriffene dateiname reingeschrieben und dann ist schluss.
Wie mache ich dass alle dateinamen in der textbox erscheinen und nicht nur einer?
Ich frage, weil ich noch am lernen bin und mich mit schleifen nicht so gut auskenne, da aber an eine do while / for schleife gedacht habe die den prozess solang wiederholt ausführt bis alle dateien durch sind.
ist das der Richtige denkansatz oder sollte ich auf list<t> zurückgreifen? (ich hoffe nicht, denn soweit bin ich mi meinem wissen noch nicht)
Ich bräuchte bitte ne erklärung anhand von meinem code, denn ich würde das gern verstehen.
habe schon in anderen foren gefragt aber da wird man nur beschimpft dass man an basics scheitert und so.
Danke schon mal im voraus
mein code
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| private void button1_Click(object sender, EventArgs e) { {
DirectoryInfo dirInfo = new DirectoryInfo(@"C:\Dokumente und Einstellungen\dp\Desktop\dateien"); FileInfo[] files = dirInfo.GetFiles("*.jpg"); foreach (FileInfo fiOutput in files) { richTextBox1.Text = fiOutput.Name; } } } |
Moderiert von
Th69: Titel geändert.
schnubber - Do 03.05.12 11:39
Soll das heißen ich soll so eine art mehrzeilige textbox machen? oder soll ich da eher auf die schleifen gucken?
Da die Kommentare dort auf englisch und sehr minimalistisch gehalten sind verstehe ich das net so ganz (englisch kann ich nur es ist etwas zu unausführlich)
Mein programm stoppt ja direkt nach dem ersten fund von dacher kanns eigentlich nicht an der textbox liegen (meine vermutung)
Th69 - Do 03.05.12 11:49
Hallo,
durch die Zuweisung
richTextBox1.Text = fiOutput.Name; überschreibst du ja auch immer wieder den vorherigen Wert (d.h. der letzte Dateiname ist nach der Schleife nur noch vorhanden).
Füge einfach per
C#-Quelltext
1:
| richTextBox1.Text += fiOutput.Name + Envioronment.NewLine; |
die Dateinamen hinzu.
Für Fortgeschrittene:
Da die Operation mittels
+= aber sehr langsam ist (d.h. für viel Text ungeeignet), könnte man hier dem StringBuilder verwenden:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| StringBuilder str = new StringBuilder(); foreach (FileInfo fiOutput in files) { str.AppendLine(fiOutput.Name); }
richTextBox1.Text = str.ToString(); |