Uli Weber: Entfernung von CRLF aus einer Eingabe

Hallo,

ich habe ein Prob. mit dem Entfernen von Zeilenvorschüben in den Texten aus einer Eingabemaske:
Der Text wird in einer definierten Zeile in einem Textfile abgelegt und soll später von genau dieser Stelle wieder abgerufen werden. Nun möchten etliche Mitarbeiter ihre Texte aber mit copy/paste einsetzen und da geht das Elend los: Die enthaltenen Umbrüche werden gnadenlos in den Textfile übernommen, so dass ich statt 5 auf einmal 25 Zeilen habe und nichts mehr wiederfinde.
Soweit ich die Sache verstanden habe, wirkt chomp ja nur am Zeilenende ... würde ein Ausdruck wie
$Text =~ s/??/ /g;
funktionieren (und wenn, was kann ich für ?? schreiben? ASCII?

Danke schonmal, Uli

  1. Hallo Uli

    $Text =~ s/??/ /g;

    $Text =~ s/\r\n/ /g;

    Oder wenn der Zeilenumbruch drinbleiben soll und die Eingabe später im Browser augezeigt werden soll:

    \r\n (Win) oder \n (UNIX) gegen <BR> tauschen

    $wunsch =~ s/(\r\n)(\n)/<BR>/g;

    Steht übrigens auch in SelfHTML - Perl:reguläre Ausgrücke ;-)

    Gruß Frank

    1. Steht übrigens auch in SelfHTML - Perl:reguläre Ausgrücke ;-)

      Jo, ich habe leider zuerst die falschen Suchbegriffe eingegeben, unter "Umbruch" stand noch ne Menge ...
      trotzdem THX, Uli

    2. Hallo Frank!

      $Text =~ s/??/ /g;
      $Text =~ s/\r\n/ /g;

      Sorry, das stimmt so nicht. Du gehst davon aus, dass "\r" den ASCII-Wert 13 und "\n" den Wert 10 hat, was aber nicht unbedingt der Fall ist. Ausserdem schneidest Du nur CRLF (also DOS-Zeilenumbrueche) heraus (vermutlich weil es so im Subject steht), aber wenn das Formular von einer Unix-Kiste abgeschickt wird, wo nur ein einzelnes LF also Umbruch uebermittelt wird, laesst Du den Text unveraendert. Daher besser:

      $Text =~ s/\015|\012//g;

      Oder wenn der Zeilenumbruch drinbleiben soll und die Eingabe später im Browser augezeigt werden soll:

      \r\n (Win) oder \n (UNIX) gegen <BR> tauschen

      $wunsch =~ s/(\r\n)|(\n)/<BR>/g;

      Besser: s/\015\012|\015|\012/<BR>/g;
      (siehe <../../sfarchiv/2000_2/t13138.htm#a67383> und von dort verlinkte)

      So long

      1. Hallo Calocybe!

        Sorry...

        Brauchst Dich doch nicht zu entschuldigen, hast ja recht

        dass "\r" den ASCII-Wert 13 und "\n" den Wert 10 hat

        in den meisten Fällen stimmt es aber

        CRLF (also DOS-Zeilenumbrueche) heraus (vermutlich weil es so im Subject steht)

        genau

        wenn das Formular von einer Unix-Kiste abgeschickt wird,

        dafür sollte ja mein 2. Tipp sein.

        Gruß Frank