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
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? 😃
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
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
... 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.
Super! Genau diesen Denkanstos habe ich gebraucht 😃
Der Tipp bez. "using" ist auch klasse - DANKE