Am 30.01.2013 13:29, schrieb Nino Novak:
Hallo Jost,
Am 30.01.2013 10:14, schrieb Jost Lange:
Könntest Du Dein Makro so interpretieren, damit sich andere auch
weiterbilden können?
Ehrlich gesagt hab ich das ziemlich schnell hin geschmiert, ohne mir
größere Gedanken darüber zu machen; sonst hätte ich zumindest noch einen
kurzen Kommentar mit einer Beschreibung über den Zweck der Prozedur
eingefügt; irgend was in der Art:
| REM Liest einen markierten Text ein, und ersetzt diesen (sofern
| REM möglich) durch das entsprechende Unicode-Zeichen.
| REM Der markierte Text muss eine genau 4-stellige hexadezimale
| REM Ziffernfolge darstellen.
| REM Beispiel: '2212' -> Sigma-Zeichen
o. ä.
Und im Nachhinein betrachtet könnte man einige Variablen sowie die
Prozedur selbst durchaus etwas [tm] sinnvoller benennen. Z. B.
könnte ...
Sub UNICODE
... besser 'HEXSTR2UNICODE' heißen ... ;-/
If IsNull( myAuswahl ) Then
Falls nix markiert ist,
Nein; falls bei der vorherigen Zuweisung kein Objekt zugewiesen werden
konnte.
Das kommt zwar nur gaaaaaaaanz selten vor, und wenn, ist das i. d. R.
ein Signal dafür, daß die Rechnerhardware hoffnungslos überfordert ist.
Aber Fehler sollten nun mal grundsätzlich abgefangen werden, egal wie
(un)wahrscheinlich sie sind. Irgendwo und irgendwann *werden* sie
auftreten (man Murphys Law).
ansonsten (also WENN irgendwas markiert ist)
Dim myInhalt as Object
Besser: 'myMarkierung'.
deklariere die Variable myInhalt ebenfalls als Objekt
myInhalt = myAuswahl.getByIndex(0)
und weise ihr den ersten Teil (Abschnitt? Portion?) der Auswahl zu
Die /erste/ Markierung.
OO erlaubt grundsätzlich das Markieren /mehrerer/ Textabschnitte
gleichzeitig; das muss von dem Objekt natürlich berücksichtigt werden.
(vermutlich kann eine Auswahl aus mehreren Teile bestehen,
möglicherweise, wenn nicht-zusammenhängende Objekte mittels
Strg+Markierung zusammen markiert wurden)
Genau.
If IsNull( myInhalt ) Then
Falls myInhalt ein leeres Objekt ist,
Yepp (s. o.).
myCode = myInhalt.getstring()
und weise ihr den Inhalt der Variable myInhalt zu.
Welche direkt die (erste; s. o.) Markierung im Text repräsentiert.
myValue = clng( "&H"&myCode )
und weise ihr die (nach Long konvertierte, also dezimale) Zahl zu, die
sich aus (der Hexadezimalzahl) "&H" und myCode ergibt
Aus myCode, ja; das '&H' ist nur ein Präfix, welches dem Compiler
signalisiert, daß es sich hier um eine hexadezimale Darstellung handelt.
Bei einem Wert wie '221A' (Wurzelzeichen) wäre das zwar offensichtlich,
aber woran könnte er das bei einem Wert wie z. B. '2212' (Sigma- oder
Summenzeichen) erkennen?
myCode = Chr( myValue )
weise der Variable myCode das ASCII-Zeichen zum Wert myValue zu
myInhalt.setstring ( myCode )
und überschreibe damit den Inhalt der Variable myInhalt
Den Text, auf den das Objekt myInhalt verweist; oder kurz gesagt der
markierte Text (daher wäre 'myMarkierung' ein besserer Variablenname; s.
o.).
Übrigens hätte man diese beiden Zeilen auch problemlos zusammenfassen
können:
| myInhalt.setstring ( Chr( myValue ) )
Passt das so?
Ja.
Wolf '<kopfschüttelnd> da hab ich ja was losgetreten ... :-/
</kopfschüttelnd>' gang
--
--
Informationen zum Abmelden: E-Mail an users+help@de.libreoffice.org
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
Context
- [de-users] Re: Eingabe von Unicodezeichen via Tastatur und Code (continued)
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.