Alle Emojies aus einem Text entfernen
Verfasst: Do 31. Okt 2024, 16:12
Falls jemand von Euch mal ein LOW-Dokuent hat, das Emojies enthält und diese Emojies, warum auch immer nicht mehr benötigt werden, dann hilft folgendes Script.
Das Online-Forum rund um das LibreOffice Softwarepaket
https://www.libreoffice-forum.de/
Code: Alles auswählen
Sub EntferneEmojis()
' Deklariere die Variablen
Dim oDoc As Object ' Verweist auf das aktuelle Dokument
Dim oText As Object ' Der Textinhalt des Dokuments
Dim oCursor As Object ' Der Cursor, der den Textbereich durchläuft
Dim i As Long ' Laufvariable für die Schleife
' Hole das aktuelle Dokument und den gesamten Text
oDoc = ThisComponent
oText = oDoc.Text
' Erstelle einen Textcursor für das gesamte Dokument
oCursor = oText.createTextCursor()
' Setze den Cursor an den Anfang des Dokuments
oCursor.gotoStart(False)
' Schleife durch den Text, bis das Ende des Dokuments erreicht ist
Do While oCursor.goRight(1, True)
' Hole das aktuelle Zeichen
Dim charText As String
charText = oCursor.getString()
' Überprüfe, ob das Zeichen im Unicode-Bereich für Emojis und Sonderzeichen liegt
' Unicode Emojis und viele Sonderzeichen haben einen Unicode-Wert > 1000
If Asc(charText) > 1000 Then
' Wenn das Zeichen ein Emoji ist, löschen
oCursor.setString("")
Else
' Auswahl aufheben und weiter zum nächsten Zeichen
oCursor.collapseToEnd()
End If
Loop
End Sub
Danke, ich finde Deine Lösung wesentlich besser!karolus hat geschrieben: ↑Do 31. Okt 2024, 16:54Alternativ geht auch schlicht Suchen und Ersetzen:
suche nach [\p{Emoji}]
ersetzen durch nix…fertig!
(natürlich mit der Option: [x]regulärer Ausdruck)
und ist so auch wesentlich robuster… es soll tatsächlich auch andere Zeichen im Bereich grösser als \uea8 geben
zum schlau machen: https://unicode-org.github.io/icu/userg ... rties.html
…meinen Beitrag nicht nur komplett zitieren, sondern auch lesen, und den Link in der letzten Zeile aufsuchenWas kann ich tun?…