Zeile in Textdatei ersetzen

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

  • Zeile in Textdatei ersetzen

    Hallo,

    gibt es einen Befehl, der eine Zeile n durch einen anderen String ersetzt?

    Ich habe eine Textdatei, die 6 Zeilen aufweist, in denen jeweils eine Zahl steht. Der Wert der in der Zeile stehenden Zahl soll inkrementiert werden.

    PHP-Code:
    32
    43
    643
    64
    999
    99 
    Ich möchte also beispielsweise die 999 durch 1000 ersetzen.
    Die 999 habe ich schon in $value ($value++). Wie kann ich diese nun in die Datei schreiben, ohne, dass das Newline-Zeichen überschrieben wird?

    Für Hilfe wäre ich dankbar.

  • #2
    Re: Zeile in Textdatei ersetzen

    Original geschrieben von bombai
    [B]es einen Befehl, der eine Zeile n durch einen anderen String ersetzt?
    nein - also, datei komplett auslesen, zeile ändern und datei neu schreiben.
    soweit klar?

    Kommentar


    • #3
      PHP-Code:
      $arr file('dein.txt');
      foreach(
      $arr as $key=>$value){
          
      $arr[$key] = $value 1."\r\n";

      so was in der Richtung...

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        nur ohne
        Code:
        ."\r\n"

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Original geschrieben von jahlives
          $arr[$key] = $value + 1."\r\n";
          dann gibt es ja doppelte zeilenumbrüche. außerdem wird jede zahl inkrementiert.

          Kommentar


          • #6
            außerdem wird jede zahl inkrementiert.
            Dann kann der topicstarter ja einfach noch ein if/else einbauen um die Zeilennummer zu prüfen.

            Gruss

            tobi

            p.s. das mit den Zeilenumbrüchen habe ich nicht bedacht: file() lässt diese ja stehen
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Original geschrieben von jahlives
              p.s. das mit den Zeilenumbrüchen habe ich nicht bedacht: file() lässt diese ja stehen [/B]
              obwohl, vorhin gabs ein ähnliches problem.

              bei der addition wird der string ja auf int gecastet und der zeilenumbruch fliegt raus.
              also doch vielleicht besser "\n\r" dranzupappen.

              Kommentar


              • #8
                Original geschrieben von jahlives
                Dann kann der topicstarter ja einfach noch ein if/else einbauen um die Zeilennummer zu prüfen.
                Aus
                PHP-Code:
                $arr file('dein.txt');
                foreach(
                $arr as $key=>$value){
                    
                $arr[$key] = $value 1."\r\n";

                soll er
                PHP-Code:
                $arr file('dein.txt');
                foreach(
                $arr as $key=>$value){
                    if (
                $key == $n-1) {
                        
                $arr[$key] = $value 1."\r\n";
                    }

                machen?

                Wie wärs mit "einfach"?
                PHP-Code:
                $arr file('dein.txt');
                $arr[$n-1] = ((int)$arr[$n-1] + 1)."\r\n"
                Erschlägt auch gleich das Dilemma mit dem Zeilenvorschub.

                Kommentar


                • #9
                  Original geschrieben von onemorenerd

                  Wie wärs mit "einfach"?
                  PHP-Code:
                  $arr file('dein.txt');
                  $arr[$n-1] = ((int)$arr[$n-1] + 1)."\r\n"
                  Erschlägt auch gleich das Dilemma mit dem Zeilenvorschub.
                  ach nö - ist zu einfach
                  war nur spaß - sieht sehr gut aus.

                  aber jetzt ist auch die aussage vom op klar: "ohne, dass das Newline-Zeichen überschrieben wird?"

                  Kommentar

                  Lädt...
                  X