Autor Beitrag
schnubber
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 03.05.12 11:21 
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
ausblenden 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)
                {
                    //dateinamen in der variablen speichern

                    richTextBox1.Text = fiOutput.Name;
                }
            }
        }


Moderiert von user profile iconTh69: Titel geändert.


Zuletzt bearbeitet von schnubber am Do 03.05.12 12:21, insgesamt 1-mal bearbeitet
lothi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 114
Erhaltene Danke: 3



BeitragVerfasst: Do 03.05.12 11:26 
Hallo

Da kann ich dir doch direkt mal helfen sogar mit Beispiel.
msdn.microsoft.com/d....lines(v=vs.80).aspx

Gruss Lothi

Für diesen Beitrag haben gedankt: schnubber
schnubber Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 03.05.12 11:39 
user profile iconlothi hat folgendes geschrieben Zum zitierten Posting springen:
Hallo

Da kann ich dir doch direkt mal helfen sogar mit Beispiel.
msdn.microsoft.com/d....lines(v=vs.80).aspx

Gruss Lothi


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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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
ausblenden 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:
ausblenden 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();

Für diesen Beitrag haben gedankt: schnubber
mats74
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189
Erhaltene Danke: 26

Win 10
VS 2017/19, C++, C#
BeitragVerfasst: Do 03.05.12 11:59 
Hallo schnubber

Da habe ich auch noch einen Lösungsansatz mit der String.Format Methode:
ausblenden C#-Quelltext
1:
richTextBox3.Text += String.Format(fiOutput.Name.ToString() + "{0}", Environment.NewLine, Environment.NewLine);					

Mit dieser Methode kannst Du den Text eingentlich ausreichend in die gewünschte Form bringen.

_________________
Gruss
mats74

Für diesen Beitrag haben gedankt: schnubber
schnubber Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 03.05.12 12:25 
ich danke euch für die sehr gute und verständliche erklärungen! Klappt jetzt alles =)

gruß Schnubber