Text-String löschen...

  • Gibt es eine Möglichkeit, aus einer einfachen Textdatei einen String (Zeile) zu entfernen, ohne das eine Leerzeile bleibt ?
    (Soweit bin ich schon. bloß die Leerzeile stört !)

    PS: Mit CHR$(13) kann ich in der Datei mit PRINT #x% eine Zeile weiter schalten. Gibt es vielleicht einen CHR$(x%)-Befehl, der eine Zeile zurück schaltet ?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress, WoltLab & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

    Wenn du Fragen hast, kannst du dich gerne jederzeit an @Maximilian Rupp wenden

    Hinweis:

  • Hallo Horst,

    nein gibt es nicht. Gibt Chr$(8) bkspc - löscht ein Zeichen rückwärts, aber nicht beim Schreiben in eine Datei.

  • Hab das Problem jetzt anders gelöst:
    In einer Listbox lösche ich den Eintrag mit DeleteString(.... und speicher dann den Inhalt der Listbox mit Rewrite #x% erneut in die Datei.
    Klappt prima :)

  • Das ginge vlt. noch schneller ohne Umweg über LB per:

    Code
    var zeileWeg&=221
    var z&=0
    assign #1
    reset #1
    assign #2
    rewrite #2
    whilenot eof(#1)
    inc z&
    casenot z&=zeileWeg& : print #2,
  • Zitat von Frabbing;736075

    Scheint so, als wäre der Code nicht vollständig.

    Frank
    Stimmt ! - :)
    Die Idee mit dem gleichzeitigen Schreiben hatte ich auch schon. Hier muss man aber eine temporäre Datei anlegen und dann den Inhalt der Temp-Datei hinterher in die eigentliche Datei speichern und dann noch die Temp-Datei löschen...
    Für mich ist meine Version mit der Listbox(Gridbox) einfacher, weil auf der Oberfläche des Tools sowieso eine Gridbox steht ;)

  • Zitat von horsthorn;736087

    Hier muss man aber eine temporäre Datei anlegen und dann den Inhalt der Temp-Datei hinterher in die eigentliche Datei speichern und dann noch die Temp-Datei löschen...

    Nicht wenn man diese Zeile nicht übersieht:

    Code
    casenot z&=zeileWeg& : print #2,

    Dadurch das man gleich die Zieldatei angeben kann ist schneller als mit Liste.

    Wenn man die Daten aber eh in einer ListBox benötigt, warum dann der Thread - deleteString$( ist schliesslich bekannt und wäre in diesem Fall sogar noch schneller, da nicht in der Schleife jeweils ein Vergleich stattfinden müsste sondern nur ein anschliessendes DeleteString$(...

  • Zitat von horsthorn;736087

    Zitat von Frabbing Beitrag anzeigen
    Scheint so, als wäre der Code nicht vollständig.

    Frank
    Stimmt ! - :)

    Fein bemerkt, die Ausgangsfrage aber ist kein vollständiger Code.

  • Ich meinte eigentlich nur die Zeile:

    casenot z&=zeileWeg& : print #2,

    Hab den Code nicht ausprobiert, sieht hinten aber unvollständig aus. Aber wenn sie wie gewünscht einen Leercode einfügt, passt es ja.
    Ich hab früher gerne anstelle z.B. der Zahl 0.13 einfach nur .13 geschrieben. Ging früher immer, funktioniert mit XProfan11 aber nicht mehr.

  • Nur zur Erinnerung, das war meine Frage:

    Zitat

    Gibt es eine Möglichkeit, aus einer einfachen Textdatei einen String (Zeile) zu entfernen, ohne das eine Leerzeile bleibt ?
    (Soweit bin ich schon. bloß die Leerzeile stört !)

    ...mit Print #2, wird eine Lerrzeile eingefügt und die will ich ja weg haben ! Daher ist das erneute Einlesen über den Inhalt der Gridbox nach 'Deletestring(... ' für mich das beste. Ob es nun schneller oder langsamer geht, ist wahtscheinlich so minimal, daß es nicht auffällt :D

  • Man könnte es auch so machen ohne Listbox ohne zwischenspeichern, wenn man nach Zeilennummern löschen will, muss man halt etwas umstellen

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!