Einzelne Zeilen in einer .txt Datei löschen ?



  • Guten Tag zusammen,
    ich habe in einer Textdatei vollständige Datensätze in einer Zeile (Login name und PW). Soll so eine Art Login sein.
    Ich kann neue hinzufügen, doch ich kann einzele Benutzer (einzelne Zeilen) in dem Dokument nicht löschen. Könnt Ihr mir dort weiterhelfen ? Ich bin noch ein starker Anfänger in C++.


  • Mod

    Zeilen sind kein spezielles Konstrukt in einer Datei. Eine Datei ist einfach nur ein langer Satz von Zeichen, ein Zeilenumbruch gilt dabei als ein Zeichen wie jedes andere. Da kann man was anhängen oder überschreiben, aber wenn man etwas rausnehmen würde, müsste man alles andere verschieben. Daher ist es nicht möglich, gezielt Zeilen zu löschen, außer eben durch komplettes Neuschreiben ohne diese Zeilen. Daher muss man sich irgendetwas anderes überlegen, um diesen Effekt zu erzielen, der Schlüssel zum Erfolg liegt im Format der Datei. Je nachdem, wie die Daten genau aussehen, kann dies aber recht unterschiedliche Vorhergehensweisen zur Folge haben. In manchen Fällen ist komplettes Neuschreiben ok. In manchen Fällen kann man überschreiben. Oder Daten als gelöscht markieren. Oder kompliziertere Datenbankformate nutzen (oder gleich eine Datenbank), wenn man höhere Ansprüche hat.

    P.S.: Man speichert keine Passwörter!



  • Ist klar, dass man keine Passwörter speichert. Dies ist nur ein Fun Projekt von mir, damit ich das Programmieren lerne, da ich es in der Schule nicht verstehe. Und da erstelle ich immer nach und nach "kleine" Projekte zum üben.

    Ich will damit eigentlich nur das Arbeiten mit Dateien in C++ üben. Da kam mir ein Login mit ID und PW und das verschlüsselt in eine Textdatei schreiben und dann auslesen, wieder entschlüsseln am sinnvollsten für, da wir gerade Dateien ein/auslesen und Verschlüsselung haben in der Schule.


  • Mod

    ich habe in einer Textdatei vollständige Datensätze in einer Zeile (Login name und PW).

    Hoffentlich verschlüsselt/gehasht.

    Schnellste Variante: Alles Einlesen, Zeile im String löschen. Dann die Datei durch den String ersetzen.

    P.S.: Man speichert keine Passwörter!

    Edit: Was sonst? Irgendetwas muss man speichern, z. B. den Hash.


  • Mod

    Arcoth schrieb:

    Edit: Was sonst? Irgendetwas muss man speichern, z. B. den Hash.

    Und das ist für dich kein wichtiger Unterschied?


  • Mod

    SeppJ schrieb:

    Arcoth schrieb:

    Edit: Was sonst? Irgendetwas muss man speichern, z. B. den Hash.

    Und das ist für dich kein wichtiger Unterschied?

    Doch, natürlich! Mein Fehler, ich dachte irgendwie, dass du das unter Passwort Speichern kategorisierst. 🙂 Natürlich speichert man den Hash, und vergleicht dann den Hash des eingegebenen Strings gegen den des Passworts.



  • SeppJ schrieb:

    P.S.: Man speichert keine Passwörter!

    Du vielleicht nicht weil du schlau bist.
    Aber selbst professionelle CMS speichern die Passwörter auch im Klartext.

    mysql ... -e"select concat(benutzer,char(58),passwort) from mitglieder where hat_bezahlt='1'"
    

    Kaboom.


Anmelden zum Antworten