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