Valentin Wirth: weiteres Zeilenumbruchzeichen als \n

Hallo Leute,

Für eine Script habe ich in ein Textfeld mehrere Dateinamen durch Enter getrennt in ein Textfeld geschrieben. Denn Inhalt des Textfeldes habe ich dann mit meinem Perlscript eingelesen und zur Anschaulichkeit die Zeilenumbrüche \n durch XX ersetzt und mir in mein Browserfenster geschrieben.

my $Dateinnamen = param("Dateinamen");
$Dateinnamen =~ s/\n/XX/g;
print "<p>$Dateinnamen</p>";

Heraus kam im Browser eine Zeile bei der die Namen durch Freizeichen(?) vor dem Zeilenumbruchzeichen getrennt sind. Im Quelltext wahren diese Zeichen Zeilenumbruchszeichen und es ergab sich folgendes:

Browser: logo.txt XXsuper.txt XXiwill.html XXgut.htm

Quelltext:
<p>logo.txt
XXsuper.txt
XXiwill.html
XXgut.htm</p>

Könnt ihr mir sagen ob es noch andere Zeilenumbruchzeichen ausser \n gibt und wo dieses Zeichen herkommt?

Danke sagt Valentin

  1. Könnt ihr mir sagen ob es noch andere Zeilenumbruchzeichen ausser \n gibt und wo dieses Zeichen herkommt?

    <br>

    gruss
    horst

    1. Könnt ihr mir sagen ob es noch andere Zeilenumbruchzeichen ausser \n gibt und wo dieses Zeichen herkommt?

      hier mehr infos:
      http://selfhtml.teamone.de/html/text/zeilenumbruch.htm
      http://aktuell.de.selfhtml.org/artikel/cgiperl/zeilenumbruch/
      (hatte ich eben vergessen)

      1. <br>
        hier mehr infos:
        http://selfhtml.teamone.de/html/text/zeilenumbruch.htm

        ...

        Meinst du das ernst?

        Ich weiss das man mit <br> einen Zeilenumbruch in HTML Dokumenten erhält aber es ging mir um das mir unbekannte Steuerzeichen zwischen den Worten (das das aussicht wie ein Freizeichen aber keins ist).

        Gibt es eigendlich eine Möglichkeit einen String als ASCII-Code ausgeben zu bekommen, so das ich immer sehen kann welches Zeichen es ist?

        Ciao Valentin

  2. Hallo Leute,

    Für eine Script habe ich in ein Textfeld mehrere Dateinamen durch Enter getrennt in ein Textfeld geschrieben. Denn Inhalt des Textfeldes habe ich dann mit meinem Perlscript eingelesen und zur Anschaulichkeit die Zeilenumbrüche \n durch XX ersetzt und mir in mein Browserfenster geschrieben.

    my $Dateinnamen = param("Dateinamen");
    $Dateinnamen =~ s/\n/XX/g;
    print "<p>$Dateinnamen</p>";

    Heraus kam im Browser eine Zeile bei der die Namen durch Freizeichen(?) vor dem Zeilenumbruchzeichen getrennt sind. Im Quelltext wahren diese Zeichen Zeilenumbruchszeichen und es ergab sich folgendes:

    Browser: logo.txt XXsuper.txt XXiwill.html XXgut.htm

    Quelltext:
    <p>logo.txt
    XXsuper.txt
    XXiwill.html
    XXgut.htm</p>

    Könnt ihr mir sagen ob es noch andere Zeilenumbruchzeichen ausser \n gibt und wo dieses Zeichen herkommt?

    Danke sagt Valentin

    Hallo,

    ja, manche Editoren machen \r\n, manche nur \n.
    siehe:
    http://selfhtml.teamone.de/cgiperl/sprache/zeichenketten.htm#steuerzeichen

    Gruß

    Axel

    1. ja, manche Editoren machen \r\n, manche nur \n.

      Ja es ist wirklich \r. Wovon hängt es eigendlich ab ob nur \n oder auch \r bei einem Zeilenumbruch verwendet wird? Wenn ich manche Texte in Notepad öffnet erhalte ich anstatt der Zeilenumbrüche ein Viereckigen Kasten. Hat das auch damit zu tun?

      1. use Mosche;

        Ja es ist wirklich \r. Wovon hängt es eigendlich ab ob nur \n oder auch \r bei einem Zeilenumbruch verwendet wird? Wenn ich manche Texte in Notepad öffnet erhalte ich anstatt der Zeilenumbrüche ein Viereckigen Kasten. Hat das auch damit zu tun?

        Das liegt am Betriebssystem.

        IMHO senden Unix-Derivate (zB Linux) nur '\n', Windows nimmt '\r\n' und Mac nur '\r'.

        Bei Perl könntest du chomp() verwenden, um etwaige Zeilenumbrüche loszuwerden.

        use Tschoe qw(Matti);

        1. Bei Perl könntest du chomp() verwenden, um etwaige Zeilenumbrüche loszuwerden.

          Mein Problem ist nur das ich erst nach den Zeilenumbrüchen spliten will und dannach immer Zeichen übrig waren. Wenn jetzt jemand auf einem Mac System das Formular benutzt und ich nach \n teilen würde dürfte das ja gar nicht mehr funktionieren. Was nun? Muss ich nach Betriebssystemen unterscheiden oder gibt es da eine bessere Variante?

          1. use Mosche;

            Bei Perl könntest du chomp() verwenden, um etwaige Zeilenumbrüche loszuwerden.

            Mein Problem ist nur das ich erst nach den Zeilenumbrüchen spliten will und dannach immer Zeichen übrig waren. Wenn jetzt jemand auf einem Mac System das Formular benutzt und ich nach \n teilen würde dürfte das ja gar nicht mehr funktionieren. Was nun? Muss ich nach Betriebssystemen unterscheiden oder gibt es da eine bessere Variante?

            Splitte einfach nach /[\n|\r\n|\n]/ (oder so ähnlich). Das steht auch entsprechend im Archiv.

            use Tschoe qw(Matti);