Gerd: Ascii-Werte von \n\r

Hallo,
kann mir jemand sagen, welchen Ascii- oder Hex-Werten die Zeichen
\n und \r entsprechen ?
Danke
Gerd

  1. Hi Gerd!

    kann mir jemand sagen, welchen Ascii- oder Hex-Werten die Zeichen
    \n und \r entsprechen ?

    Bei Wikipedia gibt es unter dem Stichwort ASCII eine hilfreiche Tabelle.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hi, und danke

      Bei Wikipedia gibt es unter dem Stichwort ASCII eine hilfreiche Tabelle.

      aber leider weiß ich Grünschnabel nicht, welchem der Zeichen

      SOH  STX  ETX  EOT  ENQ  ACK  BEL  BS  HT  LF  VT  FF  CR  SO  SI      DLE  DC1  DC2  DC3  DC4  NAK  SYN  ETB  CAN  EM  SUB  ESC  FS  GS  RS  US

      in der Tabelle \n bzw. \r entspricht ?

      1. Hallo Gerd.

        aber leider weiß ich Grünschnabel nicht, welchem der Zeichen

        […]
        in der Tabelle \n bzw. \r entspricht ?

        CR steht für „Carriage Return“ und entspricht dem \r (return).

        LF steht für „Line Feed“ und entspricht dem \n (newline).

        Einen schönen Donnerstag noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]
        1. LF steht für „Line Feed“ und entspricht dem \n (newline).

          Nur unter Linux, oder?
          auf einem Windows Rechner ist \n zwei Zeichen lang \CR \LF und  auf Apple Rechnern \CR

          Struppi.

          --
          Javascript ist toll (Perl auch!)
          1. Hallo Struppi.

            LF steht für „Line Feed“ und entspricht dem \n (newline).

            Nur unter Linux, oder?

            Nein, eigentlich nicht. LF ist immer LF.

            auf einem Windows Rechner ist \n zwei Zeichen lang \CR \LF und  auf Apple Rechnern \CR

            Nein, die Zeilenumbrüche sind auf genannten Systemen so üblich. (Wobei das für den Mac aufgrund seines BSD-Subsystemes nicht mehr gelten dürfte.)

            Einen schönen Samstag noch.

            Gruß, Ashura

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
            [HTML Design Constraints: Logical Markup]
            1. LF steht für „Line Feed“ und entspricht dem \n (newline).

              Nur unter Linux, oder?

              Nein, eigentlich nicht. LF ist immer LF.

              Ja, aber LF entspricht nicht \n

              Struppi.

              --
              Javascript ist toll (Perl auch!)
              1. Hallo Struppi.

                LF steht für „Line Feed“ und entspricht dem \n (newline).

                Nur unter Linux, oder?

                Nein, eigentlich nicht. LF ist immer LF.

                Ja, aber LF entspricht nicht \n

                Doch, das tut es.

                Einen schönen Samstag noch.

                Gruß, Ashura

                --
                sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
                [HTML Design Constraints: Logical Markup]
                1. Ja, aber LF entspricht nicht \n

                  Doch, das tut es.

                  Da steht

                  In _Unix_, a line feed is more often called a newline....

                  Aber:
                  http://en.wikipedia.org/wiki/Newline

                  Systems based on ASCII or a compatible character set use either LF ... or CR ... individually, or CR followed by LF

                  Also, \LF entspricht nicht unbedingt \n

                  Struppi.

                  --
                  Javascript ist toll (Perl auch!)
                  1. Hallo Struppi.

                    Aber:
                    http://en.wikipedia.org/wiki/Newline

                    Systems based on ASCII or a compatible character set use either LF ... or CR ... individually, or CR followed by LF

                    Also, \LF entspricht nicht unbedingt \n

                    Da hast du offenbar recht.

                    Einen schönen Samstag noch.

                    Gruß, Ashura

                    --
                    PS: Ich hätte nicht gedacht, dass „raison d'être“ so gängig ist …
                    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
                    [HTML Design Constraints: Logical Markup]
                  2. Moin!

                    Also, \LF entspricht nicht unbedingt \n

                    "Nicht unbedingt" - das ist der Knackpunkt.

                    Wenn man Quellen zu diesem Thema zusammenträgt, muß man zu folgender Erkenntnis kommen:

                    Irgendein Subsystem haut irgendwie immer dazwischen und "versaut es". Wenn die Programmiersprache selbst (so wie PHP) eindeutige Definitionen für \n und \r hat, so kann dennoch beim Schreiben in Dateien irgendein ASCII-Modus eine Anpassung von "\n"==="LF" hin zu "\n"=>"CRLF" (o.ä.) und umgekehrt bei Lesen eine Konvertierung von "CRLF" hin zu "LF"==="\n" vornehmen. Das bedeutet: In der Datei steht CRLF, innerhalb der Sprache sieht man aber nur "\n" bzw. LF.

                    Szenario 1: Testet man z.B. mit PHP unter Windows im ASCII-Dateimodus (der beim Schreiben eine Wandlung von LF in CRLF vornimmt) und nutzt nur "\n", transferiert dann die Datendatei im ASCII-FTP-Modus (der ebenfalls eine Zeilenendwandlung vornimmt, beim Upload von Windows zu Unix von CRLR hin zu LF) auf einen Unix-Server und testet dort erneut, merkt man nichts. Unix kennt zwar keinen ASCII-Dateimodus, aber da die Zeilenenden durch den FTP-Transfer gewandelt wurden, paßt dem Skript alles.

                    Szenario 2: Nutzt man stattdessen durchgehend binäre Datei- und Transfermodi, wird aus "\n" unter Windows nur ein LF in die Datei geschrieben, beim binären FTP-Transfer bleibt das LF erhalten, und beim binären Lesen unter Unix ebenfalls. Also paßt auch alles.

                    Szenario 3: Nur wenn man ASCII und Binär nicht durchgehend beibehält, gibts Murks - beispielsweise, wenn man die Datei mit PHP im ASCII-Modus schreibt und liest, aber im Binärmodus mit FTP hochlädt.

                    Szenario 4: Wenn man umgekehrt einfach erwartet, dass Dateien eine beliebige Form des Zeilenumbruchs enthalten könnte (CR/LF/CRLF), kann einem irgendeine unerwartete Veränderung, die externe Programme, FTP-Transfers etc. am Zeilenumbruch vornehmen, hingegen ziemlich egal sein.

                    Aber deutlich festzuhalten ist in meinen Augen: Jede Programmiersprache setzt "\n" in der internen Stringbehandlung erstmal immer nur in ein Linefeed um (behaupte ich jetzt einfach mal: stringlength("\n")==1 && ASCII("\n")==10). Die Wandlung in plattformabhängige Zeilenenden geschieht abhängig von entsprechenden I/O-Subsystemen - oder eben auch nicht. Und das kann einem, je nach Szenario, vollkommen egal sein - oder eben auch nicht.

                    - Sven Rautenberg

                    --
                    "Love your nation - respect the others."
      2. gudn tach!

        Bei Wikipedia gibt es unter dem Stichwort ASCII eine hilfreiche Tabelle.

        aber leider weiß ich Grünschnabel nicht, welchem der Zeichen [...]
        in der Tabelle \n bzw. \r entspricht ?

        direkt unter der tabelle ist folgender text zu lesen
        "Die ersten 32 ASCII-Zeichencodes (von 00 bis 1F) sind für Steuerzeichen (control character) reserviert; siehe dort für die Erklärung der Abkürzungen in obiger Tabelle."
        ;-)

        ansonsten waere bei "siehe auch" ein verweis zur ascii-tabelle, von wo man ebenfalls explizit auf den artikel zu steuerzeichen aufmerksamgemacht wird.

        prost
        seth

  2. Hi!

    Hallo,
    kann mir jemand sagen, welchen Ascii- oder Hex-Werten die Zeichen
    \n und \r entsprechen ?
    Danke
    Gerd

    Falls du noch mehr Zeichen suchst, hilft dir das folgende kleine C-Programm vielleicht weiter (unter Linux mit gcc dateiname.c kompilieren, unter Windows oder Mac weiss ich nicht, wie)

    (Ich nehme jetzt mal an, dass du kein C beherrschst und kommentiere das Programm sorgfaeltigst aus - Einzeilige Kommentare werden mit "//" eingeleitet, ich glaube, das entspricht "#" in Perl)

    -------Programmanfang, diese Zeile gehoert nicht dazu---------
    #include <stdio.h>  // Fuegt die Header-Datei fuer Ein/Ausgabe ein

    int main ( void )   // Hauptprogramm
    {
        int c;  // Eine Integer-Variable fuer den Zahlenwert es Zeichens
        c = '(das Zeichen, z. B.  \n)';   // Das Zeichen...
        printf("Das Zeichen %c hat den Wert %d!\n", c, c);  // Ausgabe vom
                               // Zeichen (%c fuer _c_haracter, %d fuer
                               // _d_ezimal)
    }

    -------Programmende, diese Zeile gehoert nicht dazu---------

    Ich hoffe, du kannst es gebrauchen...

    ciao,
    xjs

    --
    http://xjs.itisme.org
    linux is like a wigwam: no windows, no gates and an apache inside!
    Selfcode: sh:( fo:| ch:| rl:° br:> n4:| ie:{ mo:} va:) de:> zu:) fl:) ss:{ ls:& js:|
    1. Hallo xjs.

      Falls du noch mehr Zeichen suchst, hilft dir das folgende kleine C-Programm vielleicht weiter (unter Linux mit gcc dateiname.c kompilieren, […]

      Da gibt es Probleme:

      ashura@core2:~$ gcc test.c
      test.c:6:9: warning: character constant too long for its type

      Ich erhalte diese Warnung mit dem GCC 3.3, 3.4, 4.0 und 4.1.

      Einen schönen Freitag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]
      1. gudn tach!

        ashura@core2:~$ gcc test.c
        test.c:6:9: warning: character constant too long for its type

        Ich erhalte diese Warnung mit dem GCC 3.3, 3.4, 4.0 und 4.1.

        aehem, sorry fuer diese frage, aber du hast die folgende zeile schon entsprechend abgeaendert, oder?

        c = '(das Zeichen, z. B. \n)'; // Das Zeichen...

        oder sollte das ein witz sein und ich habe ihn nicht verstanden?

        prost
        seth

        1. Hallo seth.

          ashura@core2:~$ gcc test.c
          test.c:6:9: warning: character constant too long for its type

          Ich erhalte diese Warnung mit dem GCC 3.3, 3.4, 4.0 und 4.1.

          aehem, sorry fuer diese frage, aber du hast die folgende zeile schon entsprechend abgeaendert, oder?

          Nein, hatte ich nicht.

          c = '(das Zeichen, z. B. \n)'; // Das Zeichen...

          oder sollte das ein witz sein und ich habe ihn nicht verstanden?

          Der Zaunpfahl war in meinen Augen zu klein.

          Einen schönen Samstag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]
    2. gudn tach!

      ([...] Einzeilige Kommentare werden mit "//" eingeleitet, ich glaube, das entspricht "#" in Perl)

      ja.

      printf("Das Zeichen %c hat den Wert %d!\n", c, c);

      das gibt's in perl auch, und wenn man die variable c (oder in perl $c) mit ord("\n") initialisiert, dann wird auch das gleiche ausgespuckt.

      my $c=ord("\n");  
      printf("Das Zeichen %c hat den Wert %d!\n", $c, $c);
      

      prost
      seth