❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Unicode ?

CALC ist die Tabellenkalkulation, die Sie immer wollten.
DavidG
Beiträge: 195
Registriert: Do 22. Mär 2018, 21:41

Re: Unicode ?

Beitrag von DavidG » Do 10. Mai 2018, 17:48

Hallo Pit
hier eine Beispielcode, den Du in Deine Bibliothek legen kannst.
Bei Ausführungen der Routine "DocTypErmitteln" wird zunächst der aktuelle Dokumenttyp ermittelt,
dann wird die dazugehörende Sub aufgerufen. Also entweder die Routine für Writer oder Calc.
Dort wird dann an der aktuellen Cursorposition das im Code eingetragenen Unicodezeichen eingetragen.

Code: Alles auswählen

REM  *****  BASIC  *****
Option Explicit
Dim Dokutyp as String

Sub DocTypErmitteln
REM ist aktives Dokument = Writer oder Calc, dann
REM Sub Routinen aufrufen, sonst Fehlermeldung und Programm beenden.
Dim oDoc
	oDoc=ThisComponent

' Dokumententyp ermitteln
IF oDoc.SupportsService("com.sun.star.text.TextDocument") THEN
  Dokutyp = "Writer"
END IF

IF oDoc.SupportsService("com.sun.star.sheet.SpreadsheetDocument") THEN
  Dokutyp = "Calc"
END IF

IF oDoc.SupportsService("com.sun.star.presentation.PresentationDocument") THEN
  Dokutyp = "Präsentation"
End If

IF oDoc.SupportsService("com.sun.star.drawing.DrawingDocument") THEN
    Dokutyp = "Zeichnung"
END IF

IF oDoc.SupportsService("com.sun.star.formula.FormulaProperties") THEN
  Dokutyp = "Formeldokument"
END IF

Select Case Dokutyp
	Case "Writer"
		Call UniWriterHakenschwarz
	Case "Calc"
		Call UniCalc
	Case else
		Msgbox "Das aktive Dokument ist kein Writer- oder Calc-Dokument!" & chr(10) &  chr(10) &_
					"Das Textfeld kann nicht eingefügt werden!",48, "Anwender Fehler"
		Exit Sub
End Select		
msgbox "Das aktuelle Dokument ist ein " & Dokutyp & " Dokument."
End Sub


Sub UniWriterHakenschwarz
Dim oDoc as Object
Dim oCursor as Object
Dim oText as Object
Dim oVC as Object
Dim nCharDez as Long
Dim sChar as String
nCharDez=10003
sChar=chr(nCharDez)
'print sChar

	oDoc=thiscomponent
		oText=odoc.text
			oVC = oDoc.CurrentController.ViewCursor
				oText.insertString(oVC.Start, sChar, False)
End Sub

REM ═════════════  Unicode-Zeichen in aktuelle Selection eines CALC-Doukuments einfügen
REM Diese  Makro fügt Unicode-Zeichen in die aktuell markierte Zelle ein
REM Dazu muss eine dezimal Zahl hinter der Variablen nCharDez= eingegeben werden
Sub UniCalc
Dim oDoc as Object
Dim oCC as Object
Dim oSheet as Object
Dim oSel as Object
Dim nCharDez as Long
'Dim sFont as String



' dezimale Zeichencodes
' ✀ = 9984
' ✂ = 9986
' ✓ Häkchen = 10003
' ✔ Haken schwarz = 10004
' ✅ Haken weiß auf schwarzem Quadrat = 9989 (sehr interessant in LO wird ein schwarzes Quadrat gezeichnet, hier im Forum ein grünes :-)
' ✕ = 10005
' ✖     = 10006
nCharDez=10005

        oDoc=ThisComponent
        oCC=oDoc.getCurrentController()
                ' das aktive Sheet ermittlen
                oSheet=oCC.getActiveSheet
                        ' ausgewählte Zelle ermitteln
                        oSel=oDoc.CurrentSelection
'                               ' eingestellte Schriftart ermittlen
'                               sFont=oSheet.CharFontName

        oSel.String=chr(nCharDez)

End Sub
Bin gerade dabei, die Unicode-Liste etwas zu überarbeiten, damit das Öffnen und Speichern schneller geht.
Sobald sie fertig ist, lade ich die Datei hoch.

Gruß
David
Gruß

David
___________________
WIN 10 PRO
LO 7.4.5.1 (x64)

Wanderer
* LO-Experte *
Beiträge: 909
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: Unicode ?

Beitrag von Wanderer » Do 10. Mai 2018, 20:30

Pit Zyclade hat geschrieben:
Mi 9. Mai 2018, 11:01
...
und mich die differente Interpretation von ü in Windings bzw. Arial u.a. irritierte (im Zusammenhang mit calc´s Gültigkeitsliste).
Mit WinDings bist Du eben auf eine der alten Tricksereien gestoßen, mit denen man damals zusätzliche Zeichen ermöglichte,
in diesem Fall ein Font der andere Zeichen als üblich anzeigte. Wohl aus Kompatibilitätsgründen immer noch dabei.
DavidG hat geschrieben:Früher unter MSDOS war es eindeutig: Ich arbeite mit MSDOS, dort wurde per Anweisung die deutsche Zeichentabelle geladen.
Diese bestand aus 255 Zeichen und per Zeichen auf der Tastatur und per [ALT]+Zehnertastatur konnte man auf alle Zeichen zugreifen.
Eine Ausnahme bildeten z.B. einige der Drucker-Steuerzeichen. Fertig.
Wenn Du den Text dann per Diskette in die USA mitgenommen hättest, wären dann aber eckige Klammern angezeigt worden...
Und selbst bei den ersten ASCII-Codes mit 128-Zeichen wurden z.B. das "Währungssymbol" $ durch nationale Varianten wie Pfund
oder Peseten ersetzt, was in Deutschland nicht so problematisch waren, da wir ja 2 normale Buchstaben DM nutzen.

Das eigentliche Problem liegt darin, daß der verwendete Zeichensatz meist nirgends gespeichert wurde,
da ja der "normale" verwendet wurde - auch heute noch ein beliebtes Spiel bei alten csv-Dateien.

Für alle die diese Probleme früher nicht kannten ist Unicode die Pest, wer früher schon diese Zeichen konvertieren
musste freundet sich wohl leicher damit an.

mfg, Jörn
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten