;------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; ; Schnittstelle zu anderen Modulen: ; ; INPUT und INPUTRESTRIKTIONEN ; ============================ ; ; Parameter : ; ; Typ Variablename Variablebeschreibung [Wertebereich] ; str ctxtup Text ; ; OUTPUT und OUTPUTRESTRIKTIONEN ; ================================ ; ; Parameter : ; ; Typ Variablenname Variablenbeschreibung [Wertebereich] ; list ltxtuc Text nach der Berücksichtung der Unicode-Zeichen ; ;------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; ( defun text_unicode_ermitteln ( ctxtup / cbust cbustdez ctxt ibustdez ilentxt ilenuc irb izlersubstr ltxtuc ltxtucarab sbustucarab ) ; Die Übergabevariablen in lokale Variablen übernehmen (setq ctxt ctxtup) ; Beim Text die möglichen Unicode-Zeichen berücksichtigen (setq ltxtuc nil) (setq ltxtucarab nil) (setq izlersubstr 1) (setq ilentxt (strlen ctxt)) (while (<= izlersubstr ilentxt) (setq cbust (substr ctxt izlersubstr 1)) (setq sbustucarab nil) (if (and (= cbust "\\") (= (substr ctxt (+ izlersubstr 1) 1) "U") (= (substr ctxt (+ izlersubstr 2) 1) "+")) ; Unicode berücksichtigen (progn (setq ilenuc 7) (setq cbust (substr ctxt izlersubstr ilenuc)) (setq cbustdez (strchr_anfang cbust "\\U+")) (setq irb 16) (setq ibustdez (okthex_to_dez irb cbustdez)) (if (or (and (>= ibustdez (okthex_to_dez irb "0600")) (<= ibustdez (okthex_to_dez irb "076D"))) ; laut dem Windows-7-Programm Zeichentabelle in (and (>= ibustdez (okthex_to_dez irb "FB50")) (<= ibustdez (okthex_to_dez irb "FEFC")))) ; Verbindung mit der Windows-Schrift Arial (setq sbustucarab t) ) ; if (setq izlersubstr (+ izlersubstr (- ilenuc 1))) ) ; progn ) ; if (if (= sbustucarab t) ; arabischer Unicode-Buchstabe (progn (setq ltxtucarab (append ltxtucarab (list cbust))) ) ; progn (progn ; else (if (/= ltxtucarab nil) ; letzten arabischen Textteil berücksichtigen (progn (setq ltxtuc (append ltxtuc (reverse ltxtucarab))) ; arabische Schreibrichtung berücksichtigen (setq ltxtucarab nil) ) ; progn ) ; if (setq ltxtuc (append ltxtuc (list cbust))) ) ; progn ) ; if (setq izlersubstr (+ izlersubstr 1)) ) ; while ; Rückgabewert ltxtuc ) ; Modulende