legolas41: chr(13): brauche Hilfe

Hallo!

Ich möchte gerne einen Text, der per Formular verschickt wird, vor dem speichern bearbeiten. Und zwar sollen Anführungszeichen gegen " ausgetauscht werden.

Der Befehl im Prinzip kein Problem, ich wollte den selben benutzen wie beim ersetzen von chr(13) gegen <br>:

Replace(myText, chr(13), "<br>")

Das funkt aber mit den Anführungsstrichen nicht. Ich müsste schreiben:

Replace(myText, """, """)

Und das funkt natürlich nicht.

Wer hat eine Idee? Kennt einer vielleicht auch eine Webseite mit all den chr Befehlen? Ich habe mal ein chr(10) gefunden, weiß aber nicht, was das ist.

Greetings
legolas

  1. Hallo,

    der Trick ist ganz simpel, aber immer wieder verwirrend: Du musst das Anführungszeichen durch ein Anführungszeichen maskieren, also:

    Replace(myText, """", """)

    Das erste " leitet den String, das zweite " maskiert das folgende Zeichen, das dritte ist dann das zu ersetzende Zeichen (nämlich "), und das vierte " schließt den String. Hübsch, nicht?

    Grüße,

    Utz

    1. SUPER!!!

      Vielen Dank, funktioniert. Habe jetzt glaube ich auch rausgefunden, dass das chr(10) einen Zeilenumbruch im Quelltext verhindert, wenn man es durch nichts eintauscht.

      Hat noch einer eine Liste mit den ganzen chr Befehlen?

      Greetings
      legolas

      1. Hallo,

        wäre aber auch mit chr(34) gegangen...

        Odium

      2. Habe jetzt glaube ich auch rausgefunden, dass das chr(10) einen Zeilenumbruch im Quelltext verhindert, wenn man es durch nichts eintauscht.

        Hat noch einer eine Liste mit den ganzen chr Befehlen?

        chr(10) ist kein Befehl, der Befehl ist chr(). Was Du da mit der 10 (oder sonst einer Zahl) machst, ist ein Zeichen durch Angabe seiner Nummer zu "erzeugen". Computer speichern keine Buchstaben, nur Zahlen, also muß für jeden Buchstaben/Zeichen eine Zahl definiert werden. Die Zuordnung Zeichen <-> Nummer wiederum befindet sich in den Zeichensatztabellen.

        Zu "Zeichen" gehören neben Buchstaben, Ziffern, Satz- und Rechenzeichen auch Steuerzeichen. Deine Nummer 10 ist so ein Fall, sie bezeichnet den "Zeilenvorschub", 13 bezeichnet übrigens den "Wagenrücklauf" (der Bedarf und die Namensgebung stammt noch aus der Zeit, als eine Art Schreibmaschine das Ausgabegerät für den Computer war).
        Die Zeichenfolge 13 10 wird von Windows benötigt, um in Textdateien eine neue Zeile anzuzeigen, der Mac benutzt nur 13, andere Systeme nur 10.

        Der Zeichensatz ASCII ist Dir vielleicht zumindest vom Namen her bekannt: Er umfasst 128 Zeichen (7 Bit), von 0 bis 127, und ist Basis für wohl die meisten weltweit verbreiteten anderen Zeichensätze, inklusive der ISO-8859-Zeichensätze, die zusätzlich zu den ASCII-Zeichen weitere 128 sprachspezifische Zeichen definieren (macht insgesamt 256 Zeichen, 8 Bit). Hierzulande ist iso-8859-1 gebräuchlich (oder seit der Euroeinführung iso-8859-15), auf Windows-Maschinen kommt windows-1251 (IIRC, vielleicht war's auch -1252) zum Einsatz.
        Ein anderer, immer wichtiger werdender Zeichensatz ist Unicode, er enthält alle weltweit genutzten Zeichen und kommt in Varianten von 8 bis 32 Bit vor.

        ISO-Zeichensätze findest Du in SelfHTML: http://selfhtml.teamone.de/inter/zeichensaetze.htm. Die Unicode-Tabellen findest Du unter http://www.unicode.org/charts/. Schau dort mal in die "Basic Latin"-Tabelle, sie entspricht dem ASCII-Zeichensatz. Unter 0A (Hex für 10) steht der Eintrag "LF": "Line Feed". Bei 0D (13) steht "CR": "Carriage Return".
        Eine Erklärung der ASCII-Steuerzeichen gibt es unter http://www.stefan-lenz.ch/glossar/ascii.htm.

        Gruß,
          soenk.e

    2. Hi, hallo

      Replace(myText, """", """)

      man könnte aber auch Chr(34) nehmen

      »» Replace(myText, Chr(34), """)

      Chr(10) & Chr(13)  = crlf
      Chr(34) = "
      Chr(39) = '
      Chr(9) = tabulator

      ansonsten, schau dir ne ASCII Tabelle an. :-)

      Chr(...)  ist so gesehen eigentlich kein Befehl sondern eine Konvertierung eines ASCII-Codes ein das entsprechende Zeichen.

      Tschau, tschüß,
      Frank