Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Suche in text-datei ein Array und lösche es

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Suche in text-datei ein Array und lösche es

    Hallo,

    ich suche einen Skripteil, der dazu dienen soll, in einer Text-Datenbank ein bestimmtes Array anhand des ersten Eintrages zu identifizieren und dieses dann zu löschen.

    Danke sehr, wenn mir jemand den Tipp geben kann, mit welcher Funktion das funktionieren kann oder vielleicht gleich das Skript für mich hat.

    Öffne die Datei, suche nach dem Array in welcher auf Position eins der Begriff "???" vorhanden ist - lösche diesen Array.

    Öffne, suche, finde, gib aus - das bekomme ich hin - wie heisst aber bitte der Schnipsel, welcher mir fehlt, wonach eben genau diese eine Zeile vollständig gelöscht werden soll - kann mir da jemand helfen bitte?

    PHP-Code:
    <?php
    $vorname 
    $_POST["vorname"];
    $variable file("uebung.txt");  
    $suche = array();
    foreach (
    $variable as $zeile

    $term explode("|"$zeile);
    array_push ($suche$term[0],$term[1],$term[2]); 
    if ( 
    $term[0]==$vorname )
    {              
    $nachname $term[1];
    $plz $term[2];
    echo 
    $vorname;
    echo 
    $nachname;
    echo 
    $plz;
    exit;
    }

    ?>
    Wenn es irgendwie geht, würde ich gern ein bisschen auf diesem Skript aufbauen.

    Die "uebung.txt" ist vollgestopft mit dreiteiligen Arrays und jeweils einem Zeilenumbruch am Ende - also dieses Skript jedenfalls arbeitet, wie es soll - hat jemand für mich den passenden Befehl, der zum Löschen des selektierten Arrays verwendet werden muss?

    Danke schonmal.


  • #2
    In Dateien kannst du im Normalfall nicht wahlfrei „löschen“ - sondern du musst die Datei neu schreiben, und dabei das, was gelöscht werden soll, weglassen.

    Kommentar


    • #3
      Zitat von ChrisB Beitrag anzeigen
      In Dateien kannst du im Normalfall nicht wahlfrei „löschen“ - sondern du musst die Datei neu schreiben, und dabei das, was gelöscht werden soll, weglassen.
      Gibt es da nicht eine Funktion, die besagt, es möge der letzte Teil eines bestimmten Arrays ausgegeben und dabei gleich gelöscht werden - könnte man vielleicht solange durchlaufen lassen, bis der Array darüber vollständig gelöscht wäre.?

      Kann man möglicherweise den ersten oder letzten Array einer Text-Datenbank löschen, wonach man vorher die Text-Datenbank sortieren lassen könnte, dass der gewünschte Array an erste bzw. letzte Position verschoben wird?

      Nur mal so kurz darüber nachgedacht - als Newbie fehlt mir da freilich der exakte Durchblick.

      Kommentar


      • #4
        Dass dich dieses Gebastel schnell vor Probleme stellen wird, wurde dir ja hier schon prophezeit: http://www.php.de/php-einsteiger/695...n-loesung.html
        (Dass diese Probleme nun nicht unbedingt systematischer Natur für das Vorhaben an sich sind, sondern eher noch in der Unerfahrenheit liegen, mag zwar sein ... aber im großen und ganzen stimmte die Prophezeihung doch.)

        Zitat von UdoDirk Beitrag anzeigen
        Gibt es da nicht eine Funktion, die besagt, es möge der letzte Teil eines bestimmten Arrays ausgegeben und dabei gleich gelöscht werden - könnte man vielleicht solange durchlaufen lassen, bis der Array darüber vollständig gelöscht wäre.?
        Klar kannst du beim Durchlaufen eines Arrays bestimmte Einträge überspringen oder auch aus dem Array löschen.
        Aber das ändert nichts daran, dass die Datei mit diesen veränderten Daten neu schreiben musst, wenn du diese Änderung auch permanent halten willst.

        Kommentar


        • #5
          - habe keine Ahnung wie - Hilfe bitte.
          Deine Befindlichkeiten gehören nicht in den Titel.


          [MOD: Titel geändert]
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            Zitat von ChrisB Beitrag anzeigen
            Dass dich dieses Gebastel schnell vor Probleme stellen wird, wurde dir ja hier schon prophezeit: http://www.php.de/php-einsteiger/695...n-loesung.html
            (Dass diese Probleme nun nicht unbedingt systematischer Natur für das Vorhaben an sich sind, sondern eher noch in der Unerfahrenheit liegen, mag zwar sein ... aber im großen und ganzen stimmte die Prophezeihung doch.)


            Klar kannst du beim Durchlaufen eines Arrays bestimmte Einträge überspringen oder auch aus dem Array löschen.
            Aber das ändert nichts daran, dass die Datei mit diesen veränderten Daten neu schreiben musst, wenn du diese Änderung auch permanent halten willst.
            Gut, dann müssten die Anweisungen in etwa lauten, Öffne die Datei, übergib die Datei, durchsuche die Datei und lösche den Eintrag und anschließend schreibe die Datei wieder neu?

            Muss ich mal danach suchen - wollte mit unset rangehen - klappt aber noch nicht - hat mir gleich die ganze Datei weggeblasen.

            Eigentlich wollte ich ja nur den Array löschen, damit ich ihn durch einen veränderten ersetzen kann.

            Da ich immer noch in der Entwicklungsphase stecke, ist noch etwas Zeit für Änderungen - wahrscheinlich wird es einfacher sein, wenn man einen Array über eine Bezeichnung direkt ansprechen kann, dann sollte man diesen doch auch direkt löschen können ohne die Text-Datenbank neu schreiben zu müssen, oder?

            Meine jetzt in etwa sowas wie:

            PHP-Code:
            <?php
            $irgendwas 
            = array("dies","das","jenes");
            ?>
            Das müsste doch dann nach Öffnung der Datei über

            PHP-Code:
            <?php
            unset ($irgendwas);
            ?>
            möglich sein, oder bin ich jetzt schon vollkommen verwirrt?

            Ohje, da hab ich mir ja was vorgenommen, aber auf jeden Fall schonmal danke für den Denkanstoß.

            Will ich es so lassen, wie ich es bis jetzt behandelt habe, dann muss ich also die alte Textdatenbank öffnen, und zeilenweise in einen Array schreiben - und wenn der Array, der als nächstes dran ist, den gesuchten Begriff enthält, was das Suchwort für die Löschung des Arrays sein soll, dann darf dieses Array nicht mit in das Array zwischengelagert werden - danach wird die Datei, welche nun das Array nicht mehr enthält, welches den Suchkriterien entsprach, aus dem Array heraus wieder zusammengesetzt - die neue Datei beinhaltet also nicht mehr den zu löschenden Datensatz - ja, und ein neuer Datensatz kann ja jeder Zeit wieder eingefügt werden.

            Wow, hört sich zwar kompliziert an - aber weil ich vorhabe den zu löschenden Datensatz über ein Auswahlmenü zu bestimmen, kann ich auf bestimmte Kontrollmechanismen verzichten, was Groß-, Klein- oder sonstige Schreibweise betrifft.

            Gut, habe es geschafft, die Textdatei zeilenweise auszulesen, ein Filterkriterium einzusetzen und nun die restlichen Datensätze als Unterarray in ein großes Array zu übertragen - dieses muss ich jetzt offensichtlich wieder auseinandernehmen und damit die Text-Datenbank neu schreiben - bis dahin erstmal vielen Dank für die Hinweise - wenn ich es nicht packe, dann melde ich mich nochmal.

            Kommentar

            Lädt...
            X