Datei => schreiben,lesen

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

  • Datei => schreiben,lesen

    Hallo,
    wie kann ich einzelne Zeilen in eine Datei schreiben bzw. aus einer Datei lesen? Ich habe 3 Variablen, deren Werte ich untereinander in 3 Zeilen der Datei schreiben möchte. Bisher schreibt php mir alle Daten in eine Reihe & das ist beim auslesen etwas schlecht...Sorry, bin php newbie...oder gibt es eine Möglichkeit alles bis zu einem bestimmten Zeichen einzulesen? Dann könnte man ja ein Trennzeichen in der Datei setzen...
    Vielen Dank für eure Antworten
    ciao
    Alex

  • #2
    einzelne zeilen trennst Du mit \n
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      das dachte ich eigentlich auch...aber beim schreiben in eine Datei scheint das nicht zu klappen :-( Hast du eine Ahnung warum?

      Kommentar


      • #4
        wie schreibst Du denn in die Datei?
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          <?php
          $fh = fopen("stimmen.dat","r+");
          switch ($auswahl)
          {
          case 1: $datum1++;
          break;
          case 2: $datum2++;
          break;
          case 3: $datum3++;
          break;
          }

          fwrite ($fh,"d1=$datum1 .\n d2=$datum2 .\n d3=$datum3");
          fclose($fh);

          echo "datumausgabe=".$datum1;
          echo "$datum2";
          echo "$datum3";

          ?>
          aber da ist noch der wurm drin, da er die Variablen immer überschreibt, deswegen muß ich ja auch wissen wie man die einzelnen Zahlen in einzelne Variablen packt! Nur dummerweise kann ich nicht immer 3 Zeichen in eine Variable einlesen, da ich nicht weiß welche Länge die Zahlen haben! Den Wert der Variable Auswahl bekomme ich von einem Flash Movie.
          MfG
          Alex

          Kommentar


          • #6
            nimm doch ein Trennzeichen
            fwrite($fh,"$datum1;$datum2;$datum3");
            beim auslesen kannste das mit explode() wieder trennen
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              Oder versuch das mal so:
              fwrite ($fh,"d1=$datum1 .[COLOR=crimson]\r[/COLOR]\nd2=$datum2 .[COLOR=crimson]\r[/COLOR]\nd3=$datum3");
              Immer erst mal gucken, ob Benzin im Tank ist ...

              Kommentar


              • #8
                vielen Dank für eure Tips, ich werde das gleich mal ausprobieren & mich danach noch einmal melden!
                schönen Abend noch
                Alex

                Kommentar


                • #9
                  ich bin's nochmal...leider mit einer schlechten Nachricht :-( irgendwie klappt das nicht...hier mal mein modifizierter Quelltext...

                  <?php
                  $fh = fopen("stimmen.dat","w+");
                  $auslesen = explode(";",$fh);

                  $datum1 = $auslesen[0];
                  $datum2 = $auslesen[1];
                  $datum3 = $auslesen[2];

                  switch ($auswahl)
                  {
                  case 1: $datum1++;
                  break;
                  case 2: $datum2++;
                  break;
                  case 3: $datum3++;
                  break;
                  }

                  fwrite($fh,"$auslesen[0];$auslesen[1];$auslesen[2]");
                  fclose($fh);
                  ?>

                  in der Datei steht dann folgendes:
                  Resource id #1;;

                  es sollte dort aber eigentlich
                  1;0;0
                  stehen...

                  wo habe ich einen Fehler gemacht? Stimmt meine Zuweisung $datum => array nicht? Wäre nett wenn ihr nochmals antworten könntet...naja, ich werde jetzt erstmal gefrustet schlafen gehen...aber als Anfänger ist aller Anfang schwer ;-)
                  N8
                  Alex

                  Kommentar


                  • #10
                    PHP-Code:
                    <?
                    $fh = file("stimmen.txt"); 
                    $auslesen = split(";",$fh[0]);

                    $datum1 = $auslesen[0]; 
                    $datum2 = $auslesen[1]; 
                    $datum3 = $auslesen[2]; 

                    switch ($auswahl) 

                    case 1: $datum1++; 
                    break; 
                    case 2: $datum2++; 
                    break; 
                    case 3: $datum3++; 
                    break; 

                    $fh = fopen("stimmen.txt","w+"); 
                    fwrite($fh,"$datum1;$datum2;$datum3"); 
                    fclose($fh); 
                    ?>
                    Zuletzt geändert von mkJack; 06.05.2002, 07:40.
                    Immer erst mal gucken, ob Benzin im Tank ist ...

                    Kommentar


                    • #11
                      Guten Morgen,
                      vielen Dank für deine Umarbeitung, das klappt jetzt wunderbar...
                      ich mußte nur noch dem array den aktuellen datumswert übergeben,aber das ist ja kein Problem.
                      Ich hätte allerdings noch eine Frage zu deinem Quelltext:

                      [COLOR=crimson]$auslesen = split(";",$fh[0]);[/COLOR]

                      was bewirkt das mit dem $fh[0], ich hatte ja nur $fh stehen...
                      ich habe zu der Splitfunktion in meinem Buch nichts gefunden.

                      Schönen Tag
                      Alex
                      Zuletzt geändert von Alex0903; 06.05.2002, 07:55.

                      Kommentar


                      • #12
                        Erläuterung:

                        $fh = file("stimmen.txt");

                        $fh ist in diesem Fall ein Array
                        $fh[0] = Zeile 1 der Datei
                        $fh[1] = Zeile 2 der Datei
                        usw.

                        Zeile 1 der Datei soll übernommen und am Semmikolon getrennt werden.
                        $auslesen = split(";",$fh[0]);

                        $auslesen ist auch ein Array in das mit split alle getrennten Werte geschrieben werden.

                        In deinem Fall:
                        $auslesen[0]
                        $auslesen[1]
                        $auslesen[2]
                        Immer erst mal gucken, ob Benzin im Tank ist ...

                        Kommentar


                        • #13
                          Super ! Vielen Dank für deine Erläuterung!
                          Schönen Abend
                          Alex

                          Kommentar

                          Lädt...
                          X