Laden...

Inhalt zweiter Textdateien zeilenweise verknüpfen

Erstellt von mysharp55 vor 9 Jahren Letzter Beitrag vor 9 Jahren 959 Views
M
mysharp55 Themenstarter:in
17 Beiträge seit 2015
vor 9 Jahren
Inhalt zweiter Textdateien zeilenweise verknüpfen

Hi!

Ich habe zwei Textdateien:

Datei 1 Inhalt:

Max Mustermann
noch was tolle
mega interessant
Ich bin C# Anfänger

Datei 2 Inhalt:

text text text
noch was (aaa)
1234 mehr...
klasse beispiel text

Ich möchte diese nun zeilwenweise "verbinden" (mit "-" getrennt ) und somit eine 3 Datei erhalten:

Max Mustermann - text text text
nach was tolle - noch was (aaa)
mega interessant - 1234 mehr...
Ich bin C# Anfänger - klasse beispiel text

Ich dachte ich nutze zwei Schleifen - was aber ein (jetzt logischer) Fehler ist, da ja zuerst die innere, dann die äußere abgearbeitet wird > kann man das ändern bzw wie ist das zu lösen?

        public void DateiEinlesen()
        {
            int counter = 0;
            string lineArtist, lineTrack;

            // Read the file and display it line by line.
            System.IO.StreamReader fileArtist =
                new System.IO.StreamReader(@"C:\Users\anton\Documents\dat-1.txt");            
            System.IO.StreamReader fileTracks =
                new System.IO.StreamReader(@"C:\Users\anton\Documents\dat-2.txt");

            while ((lineArtist = fileArtist.ReadLine()) != null)
            {
                counter++;
                while ((lineTrack = fileTracks.ReadLine()) != null)
                {
                    System.Console.WriteLine(lineArtist + lineTrack);
                    counter++;
                }
   

            }

            fileArtist.Close();
            fileTracks.Close();

            System.Console.WriteLine("There were {0} lines.", counter);
            // Suspend the screen.
            System.Console.ReadLine();
        }

Mit Linq und diesem Beispiel habe ich es leider auch nicht hinbekommen, da ich z.B. kein "Split" benötige... https://msdn.microsoft.com/de-de/library/bb882647.aspx

Bin gespannt 😉 Danke schon jetzt

189 Beiträge seit 2014
vor 9 Jahren

Hallo mysharp55,

was hindert dich daran erst eine Datei in einen Puffer zu lesen und dann die 3. Datei aus 2. Datei + Puffer zu erzeugen? 😃

2.207 Beiträge seit 2011
vor 9 Jahren

Hallo mysharp55,

mit File.ReadAllLines-Methode (String) liest du erst die Zeilen der ersten Datei, dann die der zweiten Datei.

Dann reicht dir eine Schleife, nimmst den Index und fügst die einträge einfach zusammen.

Bei nicht allzu grossen Dateien sollte es das tun.

Gruss

Coffeebean

189 Beiträge seit 2014
vor 9 Jahren

... und noch ein Hinweis:
Falls du mal wieder mit Klassen in Kontakt kommst, die du explizit zerstörst (also wie hier deinen FileStream mit .Close()) sollltest du das über die Using-Anweisung (Achtung: Ist ein Unterschied zu Using-Direktive) lösen.

M
mysharp55 Themenstarter:in
17 Beiträge seit 2015
vor 9 Jahren

Super! Genau diesen Denkanstos habe ich gebraucht 😃

Der Tipp bez. "using" ist auch klasse - DANKE