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 [email protected]
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

Antwort per Email an