Wie doppelte Zeilen in Datei löschen?



  • Hallo,
    Wie kann ich dvoppelte Zeilen in einer Textdatei löschen? Gibt es dafür eine Funktion? Hoffe ihr könnt mir weiterhelfen...


  • Mod

    r0ot schrieb:

    Hallo,
    Wie kann ich dvoppelte Zeilen in einer Textdatei löschen? Gibt es dafür eine Funktion? Hoffe ihr könnt mir weiterhelfen...

    Nein, das musst du selber programmieren. Ich nehme an, dir ist klar, wie so etwas ungefähr laufen könnte?



  • Ich will ja auch kein Source Code von euch haben will ja nur von euch wissen wie ihr das realisieren würdet? Ich weiß leider nicht wie ich das machen soll, sonst hätte ich hier wohl kaum gepostet...



  • Du kannst deine Frage in der Forensuche (rechts oben, Googlesuche) eingeben.
    Dann wirst du feststellen das vor 2.5 Wochen die gleiche Frage schon mal da war: "Wie Duplikate in Datei löschen?"



  • Du gehst die Datei zeilenweise durch, speicherst bisher unbekannte Zeilen und prüfst bei jeder neuen Zeile ob du sie schon im Speicher hast oder nicht. Und dann schreibst du alles wieder aus dem Speicher in die Datei.

    Mal so für den Anfang.



  • r0ot schrieb:

    Ich will ja auch kein Source Code von euch haben will ja nur von euch wissen wie ihr das realisieren würdet? Ich weiß leider nicht wie ich das machen soll, sonst hätte ich hier wohl kaum gepostet...

    Na gut, probieren wir es mal ...

    Du öffnest die Datei und liest die erste Zeile ein. Logisch, oder?

    Dann sicherst du die Zeile, (da sie noch nicht existiert) in einer Liste oder einem Array. Ich würde sagen, du bleibst bei einer Liste, dort ist es einfacher, Elemente hinzuzufügen.

    Du gehst zur zweiten Zeile. Hier kann es bereits sein, dass die erste Zeile doppelt vorhanden ist, also gehst du bereits alle gesicherten Zeilen durch. Wenn vorhanden, kannst du die Zeile löschen, wenn nicht, hinzufügen.

    Und so weiter. Wenn du die Datei nachhaltig verändern willst, musst du die Datei verändern, und mit dem verwendeten Algorithmus ist das für einen Anfänger eine gewisse Aufgabe. Besser ist, alle Zeilen in eine Output-Datei zu laden - dadurch bleibt das Original unverändert, du hast aber trotzdem alle Daten.



  • Du kannst auch alles in einen Array packen, diesen dann mit qsort sortieren, und immer die nebeneinander löschen, welche halt doppelt sind... Da musst du nur die compare funktion für qsort schreiben und überlegen wie man einen Arrayeintrag löscht...


Log in to reply