Textdatei nach Formularengabe Zeilenweise sortieren

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?
    Last edited by derHund; 06-02-2004, 21:46.
    Die Zeit hat ihre Kinder längst gefressen

    Comment


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

      es soll selbstverständlich:

      file($datei) heißen.

      Comment


      • #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

        Comment


        • #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.

          Comment


          • #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

            Comment


            • #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

              Comment


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

                Comment


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

                  Comment


                  • #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); 

                    Comment


                    • #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

                      Comment


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

                        Martin

                        Comment

                        Working...
                        X