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
- Re: [de-users] Re: 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.