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


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?

Ein interessantes Anliegen :-)

Was dagegen, wenn ich es mal versuche? Reizt mich irgendwie ...

Wolfgang kann ja dann kommentieren/korrigieren.

Am 29.01.2013 09:01, schrieb Wolfgang Jäth:
Es sollte nicht allzu schwer sein, das als Makro nachzubilden. Hier
meine Lösung:

z.B. so: Progr.-Sprache: . . .

ist vermutlich OOoBasic, also die "Standard-Programmiersprache" von OpenOffice.org und jetzt eben LibreOffice. Einen neuen Namen (wie z.B. LibreBasic) hat die Sprache meines Wissens noch nicht erhalten.


------------------------START------------------------

Sub UNICODE
   Dim myAuswahl as Object

Übersetzung je Progr.-Zeile: Lies: deutscher Text: . . . .
'Dimensioniere Auswahl als Objekt'

Mein Vorschlag:
Deklariere die Variable "myAuswahl" vom Typ "Objekt"

(Keine Ahnung, ob das Wort "Dimensionieren" gibt)

   myAuswahl = ThisComponent.getCurrentSelection()

Weise der Variablen die aktuelle Selektion zu (also was mit der Maus oder per Tastatur gerade markiert wurde)

   If IsNull( myAuswahl ) Then

Falls nix markiert ist,

     MsgBox "Fehler: Objekt ""Auswahl"" = NULL"

gib in einer Message-Box (also einem Hinweis-Fensterchen) die Meldung "Fehler: Objekt ""Auswahl"" = NULL" aus

   Else

ansonsten (also WENN irgendwas markiert ist)
     Dim myInhalt as Object

deklariere die Variable myInhalt ebenfalls als Objekt

     myInhalt = myAuswahl.getByIndex(0)

und weise ihr den ersten Teil (Abschnitt? Portion?) der Auswahl zu

(vermutlich kann eine Auswahl aus mehreren Teile bestehen, möglicherweise, wenn nicht-zusammenhängende Objekte mittels Strg+Markierung zusammen markiert wurden)

(oder ist damit der Wert von myAuswahl ab Position 0, also vom ersten Zeichen an, gemeint???)


     If IsNull( myInhalt ) Then

Falls myInhalt ein leeres Objekt ist,

       MsgBox "Fehler: Objekt ""Inhalt"" = NULL"

gib die Meldung "Fehler: Objekt ""Inhalt"" = NULL" aus

     Else

ansonsten (also wenn die Variable etwas enthält)

       Dim myCode as String

deklariere die Variable myCode als Zeichenkette

       myCode = myInhalt.getstring()

und weise ihr den Inhalt der Variable myInhalt zu.

       If Len( myCode ) <> 4 Then

Sollte die Zeichenkette ungleich 4 Zeichen sein,

         MsgBox "Fehler: Selektion ist nicht genau 4 Stellen lang"

gib die obige Fehlermeldung raus.

       Else

Ansonsten (also wenn die Zeichenkette genau 4 Zeichen lang ist)

         Dim myValue as Long

deklariere myValue als Long (vermutlich eine Integer-Variante)

         myValue = clng( "&H"&myCode )

und weise ihr die (nach Long konvertierte, also dezimale) Zahl zu, die sich aus (der Hexadezimalzahl) "&H" und myCode ergibt


         If myValue = 0 Then

Wenn der Wert der Zahl 0 ist,

           MsgBox "Fehler: Selektion ist kein Hexadezimalwert"

dann wars kein Hex-Wert,

         Else

Ansonsten (ein von 0 abweichender Wert liegt vor)

           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

(die ja bekanntlich die zuvor markierte Stelle/Zeichenfolge enthalten hat)

         End If
       End If
     End If
   End If
End Sub

Ende aller Verzweigungen und der Routine.

------------------------ENDE-------------------------

Passt das so?

Schöne Grüße,
Nino

--
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.