zeilen in txt nach oben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • zeilen in txt nach oben

    Hallo!

    thema zeile aus txt löschen
    bevor die meldung kommt "erst suchen...." - hab ich.

    in allen beiträgen werden immer nur lösungen vorgestellt zum löschen des inhalt's einer zeile. meine frage ist nun, wie -wenn ich den inhalt einer zeile in meiner txt gelöscht habe - setze ich die folgenden zeilen um jeweils eine zeile hoch?

    bildlich gesprochen:
    als beispiel habe ich in meiner txt-datei zeile 3 gelöscht. dann sieht meine txt so aus:
    1. text
    2. text
    3.
    4. text
    5. text
    usw..

    mein problem ist also, wie mache ich aus zeile 4 jetzt zeile 3 u.s.w...

    folgendes script habe ich dank diesen forums als vorlage:

    PHP-Code:
    <?php
    foreach ($zeile as $index => $nr)

    echo 
    "Zeile Nr. $nr wurde gel&ouml;scht<br>";
    }

    //-->Einstellungen
    $db "../texte/glossar.txt";
    $inhalt file($db);
    $anzahl count($inhalt);

    //Die Zeile die geändert werden soll
    //--> Daten die erstetzt werden sollen
    #rsort($inhalt);
    $eintrag ksort($inhalt);
    $replace $eintrag;
    //------------------------------------

    //-->Neuen Daten

    $rep_neu "$replace";

    //-->Herauslesen der Daten


    for ($x=0;$x<$anzahl;$x++)
        {
        
    $rep_old "$inhalt[$nr]";
        
    $inhalt[$nr] = str_replace("$rep_old","$rep_neu",$inhalt[$nr]."\n");
        echo 
    "<b>Zeile $x </b><br>".$inhalt[$x]."<br>";//Für die Überprüfung
        
    echo "<br>";
        }

    //-->Teil neu in die Txt schreiben

    $fp fopen($db,"w");
    for(
    $i 0;$i<$anzahl;$i++)
        {
        
    $schreibe[$i] = trim($inhalt[$i]);
        
    fwrite($fp,$schreibe[$i]."\n",1024);
        }
    fclose($fp);

    //--> Daten die angezeigt werden:
    echo"<br><br>";
    echo 
    "Zeilen: $anzahl<br><br>";
    ?>
    <body>
    <form name="liste">
    bitte die Zeilennummer hier eingeben.<input type="Text" name="zeile[]" class="kurs">&nbsp;<input type="Submit" value="Datensatz l&ouml;schen" class="text">
    </form>
    </body>

  • #2
    PHP-Code:
    for($i 0;$i<$anzahl;$i++)
        {
        
    $schreibe[$i] = trim($inhalt[$i]);
        
    fwrite($fp,$schreibe[$i]."\n",1024);
        } 
    machst du mit dem "\n" evtl. einen Zeilenumbruch bei jeder Zeile und erhälst du dann eine Leerzeile?

    Wenn du die Zeilennummer weisst sollte eine if-Abfrage dein Problem eigentlich lösen.
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      ich sehe kein zeile löschen?

      denke mal es liegt an deiner indexierung deiner zuerst eingelesenen datei. du gehst mit for jedesmal soviel zeilen durch wie die "alte" datei zeilen hatte. beim löschen verringert sich ja aber diese anzahl! dazu könntest du ein zweites neues array mit neuer anzahl von zeilen erstellen, welches dir dann deine datei zurückschreibt
      ... und besucht mal den ebay(TM)-browser überhaupt: Lauge
      und damit das Fragen nen Ende hat: Der Progger davon sitzt mir gegenüber !

      Kommentar


      • #4
        zu XGremliN,

        mit jeder zeile habe ich eine aussage. demnach brauche ich das \n - argument für die neue zeile. da sonnst alle aussagen in einem satz zusammen gefaßt werden.

        Kommentar

        Lädt...
        X