Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


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


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.