Textdatei nach Formularengabe Zeilenweise sortieren

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

  • Textdatei nach Formularengabe Zeilenweise sortieren

    Hi,

    ich übergebe per:

    while(list($name,$value)=each($HTTP_POST_VARS)) {
    $message.="$value|";
    }
    mail($admin,$subject,$message,"From: $email");
    $datei = "adressen.txt";
    $fp = fopen($datei,"a");
    fputs($fp,"\n$message");

    Daten aus INPUT-Feldern in eine .txt-Datei.

    Jetzt sollen die einzelnen Zeilen nach dem ersten Buchstaben jeder Zeile sortiert werden.

    Ich dachte an etwas wie:

    $array=list($datei);
    $sortiert=sort($array);
    fopen($datei, "w");
    fwrite($sortiert);
    fclose($datei);

    Aber jegliche Versuche schlugen bis jetzt fehl, entweder die Originaldatei wird komplett überschrieben oder es sortiert einfach nicht.
    Ich habe die letzten Stunden damit verbracht, Einträge aus Foren und Manuals zu durchforsten, allerdings hatte niemand eine Lösung anzubieten.

    Irgendwelche Vorschläge?

  • #2
    hmm,

    mein tip:

    mach vor jede variablenzuweisung nen echo (mit \n vielleicht), und schau, wie weit dein code das macht, was du willst, hast du die richtige stelle gefunden, hast du meistens auch den übeltäter ...

    EDIT:
    was willst du machen? wo genau ist das problem?
    Zuletzt geändert von derHund; 06.02.2004, 21:46.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      file ist klar. Sorry, war ein Tippfehler

      es soll selbstverständlich:

      file($datei) heißen.

      Kommentar


      • #4
        nur damit ichs verstehe, ...

        - du kriegst verschiedene infos aus dem $_POST?
        - du willst die angaben zeilenweise haben, alphabetisch geordnet?
        - danach willst du in die datei schreiben?
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Ich bekomme jeweils eine Zeile mit 10 Werten aus dem $_POST,
          mit | als delimiter.
          Das funktioniert auch wunderbar, auch die Ausgabe in eine Tabellenstruktur funktioniert einwandfrei.
          Nur möchte ich nun, dass nach jedem neuen Eintrag:

          in die folgendermaßen strukturierte .txt:

          Hans|Meiser|Waldweg13|....|....|....|
          Vladimir|Sepp|Dunkeleg4|....|....|....|
          [....]

          alle Einträge nach dem Anfangsbuchstaben des Vornamens sortiert werden und in die .txt geschrieben werden, woraufhin auch prompt die ausgabe der neuen (sortierten) Tabelle stattfindet.

          Kommentar


          • #6
            PHP-Code:
            $trenner="|";
            $name="datei.txt";

            array_multisort($feld);

            $dat=fopen($name,"a");
            fwrite($dat,$feld[0].$trenner.$feld[1].$trenner.$feld[2].$trenner.$feld[3]."\n");
            fclose($dat); 
            Soviel zum Schreiben!
            Download ET-Chat v3.x.x

            Kommentar


            • #7
              mal als vorschlag:
              du liest deine datei in ein array:
              PHP-Code:
              $datei file('die_datei'); 
              du hast deine daten aus $_POST, daraus machen wir eine neue zeile im array $datei:
              PHP-Code:
              $datei[] = implode('|',$_POST); 
              dann wird das array sortiert ... such dir was aus: sort() natcasesort() ... als nächstes machen wir einen string aus dem array
              PHP-Code:
              $datenzumschreiben implode('\n',$datei); 
              und dann wird mit fopen, fwrite das ganze neu geschrieben.
              Kissolino.com

              Kommentar


              • #8
                @E.T.: das bewirkt überhaupt nichts.
                es sortiert nicht. Habe alle Namen richtig übernommen und keine Tippfehler gemacht.

                Kommentar


                • #9
                  Höre auf Wurzel...
                  Download ET-Chat v3.x.x

                  Kommentar


                  • #10
                    @Wurzel

                    also hier mal der komplette Code, ich verstehe es einfach nicht mehr....
                    entweder er überschreibt alles oder sortiert nicht. Ich finde den Denkfehler einfach nicht:

                    PHP-Code:
                    $admin "meine@adressel.de";
                    $subject "Mail: Eintrag von $Vorname";
                    while(list(
                    $name,$value)=each($HTTP_POST_VARS)) {
                    $message.=strip_tags("$value|");
                    }
                    mail($admin,$subject,$message,"From: $email");
                    $datei "adressen.txt"
                    $fp fopen($datei,"a");
                    fputs($fp,"\n$message");

                    $arr file('adressen.txt');
                    sort($arr);
                    $neuedaten implode('\n',$arr);
                    fopen($datei"w");
                    fwrite($datei"$neuedaten");
                    fclose($datei); 

                    Kommentar


                    • #11
                      kann es sein, dass ein dateihandler fehlt ?
                      PHP-Code:
                      $admin "meine@adressel.de";
                      $subject "Mail: Eintrag von $Vorname";
                      while(list(
                      $name,$value)=each($HTTP_POST_VARS)) {
                      $message.=strip_tags("$value|");
                      }
                      mail($admin,$subject,$message,"From: $email");
                      $datei "adressen.txt"
                      $fp fopen($datei,"a");
                      fputs($fp,"\n$message");
                      fclose($fp);

                      $arr file('adressen.txt');
                      sort($arr);
                      $neuedaten implode('\n',$arr);
                      //--- ab hier:
                      $fp fopen($datei"w");
                      fwrite($fp$neuedaten);
                      fclose($fp); 
                      ... du hast die datei geöffnet ... geleert ... aber nichts geschrieben
                      Kissolino.com

                      Kommentar


                      • #12
                        Sehr fein!
                        Es sortiert, hurra. Zwar erzeugt es jetzt bei jedem Eintrag zig Leerzeilen, aber das bekomme ich jetzt selber hin.
                        Danke,

                        Martin

                        Kommentar

                        Lädt...
                        X