Feedback

Neue Zeilen hinzufügen

Sprache: C#

Fügt in eine bestehende Datei die Zeilen einer anderen Datei hinzu, die noch nicht enthalten sind.
public static void addNewLines(string mainFile, string newLinesFile)
        {
            if (Path.HasExtension(mainFile) && Path.HasExtension(newLinesFile))
            {
                List<string> MainFile = new List<string>(System.IO.File.ReadAllLines(mainFile.ToString()));
                List<string> NewLines = new List<string>(System.IO.File.ReadAllLines(newLinesFile.ToString()));
                foreach (string newLine in NewLines)
                    if (!MainFile.Contains(newLine))
                        MainFile.Add(newLine);
                System.IO.File.WriteAllLines(mainFile, MainFile);
            }
            else
                Console.WriteLine("File not found");
        }
public static void addNewLines(string mainFile, string newLinesFile)
        {
            if (Path.HasExtension(mainFile) && Path.HasExtension(newLinesFile))
            {
                List<string> MainFile = new List<string>(System.IO.File.ReadAllLines(mainFile.ToString()));
                List<string> NewLines = new List<string>(System.IO.File.ReadAllLines(newLinesFile.ToString()));
                foreach (string newLine in NewLines)
                    if (!MainFile.Contains(newLine))
                        MainFile.Add(newLine);
                System.IO.File.WriteAllLines(mainFile, MainFile);
            }
            else
                Console.WriteLine("File not found");
        }

4 Kommentare

  1. Nein, da wird noch geprüft, ob die Zeile bereits vorhanden ist. Allerdings sollte man da eventuell noch eine Lockup Table in Betracht ziehen, damit das Contais schneller abläuft.

  2. @Jan Welker: In dem Kontext in dem ich es geschrieben habe, war die Prüfung sehr wichtig, da man sonst innerhalb eines Monats bereits den Rahmen gesprengt hat, den man für die Größe einer Textdatei im Kopf haben sollte (ich schätze mal in die Richtung 5GB + 1GB pro weiterem Monat).

    @Anonymous2: Das Ausführen war in der Tat nicht so schnell wie ursprünglich erhofft. Ich werde mich wohl mal mit deinem Vorschlag auseinandersetzen 😉