Autor Beitrag
hauke1981
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 19.09.08 11:28 
Hi,
ich versuche gerade mehrere Dateien (txt) auszulesen und in einem Textfeld anzeigen zu lassen. Ich habs auch mit einer Datei hinbekommen, ich möchte jedoch beide oder mehrere Dateien anzeigen lassen. Weiss einer über welchen Funktionsaufruf das geht? Hier mal nen kurzer Codeauszug:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
if (ofd1.ShowDialog() != DialogResult.OK) return;
            {
               StreamReader reader = new StreamReader (File.OpenRead (ofd1.FileName));

               String line;

               while ((line = reader.ReadLine()) != null)
               {
                textBox1.AppendText(line + "\r\n");
               }
               reader.Close();

            }
            
        }


Grüße
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 19.09.08 11:51 
Du kannst das doch einfach in einer Schleife für jede ausgewählte Datei machen :nixweiss:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4796
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 19.09.08 11:59 
Statt 'OpenFileDialog.FileName' gibt es dann dafür die Eigenschaft 'FileNames'.
ausblenden C#-Quelltext
1:
2:
foreach(string sFilename in ofd1.FileNames)
  ...
hauke1981
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 19.09.08 12:16 
@Th69:

Sorry für die dumme Frage aber wo schreib ich dann den Code von dir rein? :oops:
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Fr 19.09.08 13:02 
auf dein Code-Beispiel angewand müsste es so aussehen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
if (ofd1.ShowDialog() != DialogResult.OK) return;
            {
               foreach(string sFilename in ofd1.FileNames) 
               {
                   StreamReader reader = new StreamReader (File.OpenRead (sFilename));

                   String line;

                   while ((line = reader.ReadLine()) != null)
                   {
                        textBox1.AppendText(line + "\r\n");
                   }
                   reader.Close();
               }
            }
        }
hauke1981
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 19.09.08 13:17 
Super danke, jetzt geht es, jetzt muss ich nur noch schauen wie ich den inhalt der beiden Dateien zeilenweise vergleichern kann.
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Fr 19.09.08 13:31 
ofd1.FileNames ist ja ein Array von Strings(in diesem Fall den Dateinamen)
du kannst auch per Index darauf zugreifen
z.B.: ofd1.FileNames[0] oder ofd1.FileNames[1]
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 19.09.08 13:47 
Warum muss es bloß so kompliziert sein...

Ich schlage vor, den StreamReader zu vergessen und alles in einem Befehl File.Read zu erledigen. Dann kannst Du wahlweise den Text direkt in eine TextBox schreiben oder zum Vergleich in ein String-Array übertragen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
foreach(string sFilename in ofd1.FileNames) 
{
    textBox1.Text = File.ReadAllText(sFilename);
    //  oder, wenn Du alles zusammenfügen willst:
    textBox1.AppendText( File.ReadAllText(sFilename) );
}

//  oder:
string[] allLines = File.ReadAllLines(ofd1.Filename);

Das letzte Verfahren wird natürlich etwas komplizierter, wenn Du ein eigenes Array für jede einzelne Datei verwenden willst; aber vom Prinzip her geht es so.

Gruß Jürgen
hauke1981
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 19.09.08 14:54 
Alles klar soweit hab ich das jetzt auch hinbekommen. Aber wie kann ich den Inhalt von zwei TXT Dateien miteinander vergleichen, um herauszufinden in welcher Datei eine Zeile fehlt und welche das ist. Die entsprechende Zeile sollte dann angezeigt werden (mit dem entsprechenden Dateiname). Weiss das einer? Hab gesagt bekommen über Hashtables. Aber da bin ich gerade ein wenig ratlos.

Grüße
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 19.09.08 14:56 
Hallo!

Da die Frage nichts mehr mit dem ursprünglichen Thema zu tun hat, möchte ich Dich bitten, einen neuen Thread zu eröffnen. Dann kannst Du ihm auch einen passenden Titel geben und ihn in der richtigen Sparte posten. Denn beides passt für die neue Frage ja nicht mehr :-)

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.