Deutsche Sonderzeichen

  • Will man in einem Text (z.B. für ein GI_visMoniker) die Sonderzeichen äöüß benutzen, dann ersetzt man sie durch die Codes ŠšŸ§. Das Wort Größe lautet dann also Grš§e. Das funktioniert aber nicht, wenn der Code für ß allein auftritt wie z.B. in Maß. Pmake bricht mit einer sinnlosen Fehlermeldung ab. Kann das jemand bestätigen?

    Wilfried

  • Selbst mit den hex-Darstellungen gab es bei mir - ja nach pmake Version - Probleme. Ich nutze seit dem nur noch die oktale Variante, also \212 für ä und \247 für ß. Größe ist dann Gr\232\247e.

    Gruß
    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • Die hex-Codes werden von pmake zwar akzeptiert, die Zeichen erscheinen aber nicht (Leerstellen).
    Die oktalen Codes funktionieren exakt wie die von mir schon angegebenen Zeichen. Das Wort Maß geht auch oktal nicht.
    Probleme machen nur die Zeichen ß und Ä. Und auch nur dann, wenn vor ihnen kein anderer Umlaut steht.
    Schon merkwürdig...

    Wilfried

  • So sieht bei mir das "Copyright (c) Jörg Polzfuß" (bzw. "Copyright © Jörg Polzfuß") im Quelltext aus:
    "Copyright \xa9 J\x9arg Polzfu\xa7"

    Das Oerttel'sche Buch ist leider gerade nicht mehr online?! Ich füge mal die Seite als Bild ein - die Umrechnung in Hexadezimal, bzw. Oktal muss man leider noch selbst vornehmen. ;)

    There are two rules in life:
    1. Never give out all of the information.

    Edited 2 times, last by jpolzfuss (January 7, 2018 at 7:31 PM).

  • Hmm… Schade! Das Prozentzeichen hat so seine Tücken unter C. Klappt es ggf. mit einem doppelten Prozent wie bei Printf?

    Code
    printf("%%");

    Sonst könnte in einem GString vielleicht noch \% klappen.

    There are two rules in life:
    1. Never give out all of the information.

  • Ich hab mal folgendes notiert:
    - Geos-Zeichen mit gesetztem Bit 7 müssen in der Hex-Darstellung (\x80 für Ä) angegeben werden. \x25 sollte daher eigentlich gehen
    Beim Prozentzeichen würde ich nach deinen Fehlschlägen versuchen: \% \045 (oktale Darstellung)

    Mach doch mal eine Beispiel für GSDrawText, das funktioniert.

    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • Hallo Wilfried,

    GSDrawText wird z.B. in APPL\SDK_C\MultiPrim benutzt. Ich wollte ein bisschen rumspielen, weil mich das Ergebnis nicht zufriedenstellt und habe einfach in

    Code
     GSDrawText( 10, 10 ), "1",

    die 1 ersetzt durch %.

    Und was soll ich sagen ... Es geht.

    GSDrawText( 10, 10 ), "\045", erzeugt einen leeren Text, GSDrawText( 10, 10 ), "\x25", die Fehlermeldung von oben (Invalid hex constant). Blöd ist, das damit auch Umlaute (\x80 für Ä) nicht gehen.

    Ich denke, das ist ein Issue auf GitHub wert.

    LG
    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • Nachtrag: Was aber geht, ist das Windows-Zeichen zu verwenden, dass den gleichen ASCII Code hat, wir das GEOS Zeichen, was man will

    Das ist aber genau das, was man bei "normalen" visMonikern NICHT machen darf, sonst bekommt man die Meldung "illegales SJIS-Zeichen".
    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • Das Problem liegt im GOC bei der gstrings-Aufbereitung. Da wird aktuell die Schreibweise "\x.." nicht unterstützt, könnten/sollten wir aber nachrüsten. Besonders schwierig ist "%", welches als einfaches Zeichen ja eigentlich gehen sollte. Allerdings scheint es auf der Strecke in die übersetzte C-Datei verloren zu gehen, vermutlich wird der Zielstring via printf ausgegeben, wo dieses Zeichen wieder eine Sonderbedeutung hat.

    Somit läßt sich "%" aktuell gar nicht im gstring ausdrücken, ohne den noch dynamisch irgendwann im Programm zu manipulieren. Ich würde empfehlen dazu mal eine github-Issue aufzumachen, dann gehen wir das Tools-Problem an.

    Viele Grüße,
    Falk \\ blueway.Softworks

    Edited once, last by frehwagen (December 24, 2024 at 3:48 PM).