Bär: 2 Probleme mit Schreiben in Dateien

Hallo Leute!

vielleicht kennt ihr ja eine Lösung auf diese Fragen:

1. Problem
ich möchte eine zeile in einer textdatei schreiben, so dass beim nächsten fwrite()- befehl eine neue Zeile beginnt
ich versuchte es so:
fwrite($datei, $text."\n")
was im editor jedoch nicht ging, es stand alles auf einer zeile
weiss jemand eine Lösung für dieses Problem?

2. Problem
ich habe keine funktion gefunden, wie man in einer datei
eine leere zeile einfügen kann, das heisst dass sich der inhalt verschiebt. Gibt es eine solche funktion, oder lässt sich dies mit einem Trick erreichen?

sehr wahrscheinlich hängen die 2 probs zusammen, und ich bin sowieso auf dem holzweg mit meiner denkensweise....

falls jemand eine Lösung weiss, wäre ich ihm sehr dankbar

cu
Der Bär

  1. Hi Bär,

    fwrite($datei, $text."\n")
    was im editor jedoch nicht ging, es stand alles auf einer zeile
    weiss jemand eine Lösung für dieses Problem?

    "\r\n"

    1. Problem
      ich habe keine funktion gefunden, wie man in einer datei
      eine leere zeile einfügen kann, das heisst dass sich der inhalt
      verschiebt. Gibt es eine solche funktion,

    Nein

    oder lässt sich dies mit einem Trick erreichen?

    Ja, alles einlesen und verändert zurückschreiben.

    <../../sfausles/tsfa_tee.htm#a2> ist zwar für Perl aber das
    Prinzip ist das gleiche.

    Gruss,
    Carsten

    1. Hallo Carsten,

      fwrite($datei, $text."\n")
      was im editor jedoch nicht ging, es stand alles auf einer zeile
      weiss jemand eine Lösung für dieses Problem?

      "\r\n"

      Erzeugt "\r\n" statt nur "\n" einen "richtigen" Umbruch, der später
      zB auch im Editor als solcher interpretiert wird? Für das Anlegen
      einer neuen Zeile selbst reicht PHP ja "\n".

      <img src="http://www98.l8.xodox.com/promo/signet.gif" alt="">

      <img src="http://www98.l8.xodox.com/promo/akonline.gif" alt="www.alexander-kleinjung.de" style="cursor:hand;" onMouseUp="window.open('http://www98.l8.xodox.com/promo/forum.htm','select','width=325,height=240');" onmouseover="window.status='http://www.alexander-kleinjung.de';return true;" onmouseout="window.status='';return true">

      1. Hi Alex,

        Erzeugt "\r\n" statt nur "\n" einen "richtigen"
        Umbruch,

        äh jein.

        Unter Windows ist \r\n ein Zeileumbruch unter Unix ist \n ein
        Zeilenumbruch und beim Mac ist es \r. ( \n\r ist IMHO noch frei.)

        Fürs/im Web wird oft \r\n genommen (z.b. bei den Headern).

        Einige Programme und Funktionen konvertieren dann auch noch.
        (Z.b. UltraEdit automatisch, FTP im sog. ASCII-Modus, fopen("....","r") auf
        Windows-systemen, deshalb gibts auch noch extra fopen("....","rb") wenn man
        nicht konvertieren will....)

        Gruss,
        Carsten

    2. danke für die Lösung zum ersten Problem!

      das bringt mich auf eine idee:
      wenn ich einfach eine zeile mit ihrem eigenen wert überschreibe und das reinschreibe: ."\r\n"."\r\n"

      erste versuche sind gelungen...

      gruss

      der Bär

  2. Hallo Bär,

    fwrite($datei, $text."\n")
    was im editor jedoch nicht ging, es stand alles auf einer zeile
    weiss jemand eine Lösung für dieses Problem?

    Was meinst Du mit "stand alles in einer Zeile"? Wenn Du Dir die "ge-
    schriebene" Datei ansiehst, ist wirklich kein "richtiger" Zeilenum-
    bruch zu sehen, aber es ist (zumindest beim Windows Editor) ein kleines
    leeres Kästchen zwischen den Einträgen: der "Zeilenumruch".

    Vom Syntax her ist es nämlich korrekt angelegt.

    ich habe keine funktion gefunden, wie man in einer datei
    eine leere zeile einfügen kann, das heisst dass sich der inhalt
    verschiebt.

    Wo willst Du das einfügen? Vor dem "alten" Text (also neue Einträge
    immer vornedran) oder willst Du zwischen bestehende Zeilen eine
    Leerzeile einfügen? Beides geht über reguläre Ausdrücke; schau mal
    bei [http://www.php3-forum.de] nach, dort findest Du einige Beispiele
    und auch ein Forum,

    <img src="http://www98.l8.xodox.com/promo/signet.gif" alt="">

    <img src="http://www98.l8.xodox.com/promo/akonline.gif" alt="www.alexander-kleinjung.de" style="cursor:hand;" onMouseUp="window.open('http://www98.l8.xodox.com/promo/forum.htm','select','width=325,height=240');" onmouseover="window.status='http://www.alexander-kleinjung.de';return true;" onmouseout="window.status='';return true">