🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ 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. 🤗

[Gelöst] Test gesucht: Großbuchstabe (upper case) oder Kleinbuchstabe (lower case)?

Alles zur Programmierung im LibreOffice.
Antworten
Lienucks
Beiträge: 20
Registriert: Mo 17. Sep 2012, 21:27

[Gelöst] Test gesucht: Großbuchstabe (upper case) oder Kleinbuchstabe (lower case)?

Beitrag von Lienucks » Fr 6. Mär 2020, 20:11

Hallo *!

Mit UCase() kann ich einen String in einen String umwandeln, der nur aus Großbuchstaben besteht. Mit LCase() bekomme ich einen String aus Kleinbuchstaben.

Wie aber teste ich, ob ein gegebenes Zeichen ein Großbuchstabe oder ein Kleinbuchstabe ist?

In den (wirklich tollen) Büchern von Andrew Pitonyak und von Thomas Krumbein habe ich nichts dazu gefunden.
(Hintergrund meiner Frage ist, dass ich mir ein Makro schreiben möchte, das zwischen Groß- und Kleinschreibung wechselt. Die in LibreOffice vorhandene und über Umschalt+F3 aufrufbare Funktion macht mir den ganzen Satz kaputt, indem es alle Wörter bis auf das erste kleinschreibt.)

Jetzt schon danke für jeden Hinweis!

Lienucks
Zuletzt geändert von Lienucks am Mo 9. Mär 2020, 20:37, insgesamt 1-mal geändert.

mikele
* LO-Experte *
Beiträge: 1927
Registriert: Mo 1. Aug 2011, 20:51

Re: Test gesucht: Großbuchstabe (upper case) oder Kleinbuchstabe (lower case)?

Beitrag von mikele » Fr 6. Mär 2020, 21:02

Hallo,
mit der Funktion ASC() erhältst du den ASCII-Wert des Zeichens. Großbuchstaben A-Z haben die Werte 65 - 90 ...
Gruß,
mikele

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

Re: Test gesucht: Großbuchstabe (upper case) oder Kleinbuchstabe (lower case)?

Beitrag von Wanderer » Sa 7. Mär 2020, 00:02

Hallo,

das war früher Mal eine nette Übung in Programmierkursen.

In der englischen Version wurde für ein Zeichen c nur getestet

Code: Alles auswählen

IF c>="A" AND c<="Z" 
um eine isUpper-Funktion zu bauen.
Im deutschen kümmerte man sich zusätzlich um ÄÖÜ und ß und hatte damit alles erledigt.

Heute arbeiten wir mit Unicode und es ist eine echte Fleißarbeit eine korrekte isUpper-Funktion zu bauen, die aber glücklicherweise schon andere Leute erledigt haben.

Für mich wäre der einfachste Weg das Macro in Python zu verfassen, z.B. analog zu diesem Beispiel
https://wiki.openoffice.org/wiki/PyUNO_samples

Da ich hier
https://wiki.openoffice.org/wiki/Docume ... e_Library) kein isUpper gefunden habe, würde ich in BASIC mit

Code: Alles auswählen

IF char=LCASE(char) THEN
Arbeiten.

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

Lienucks
Beiträge: 20
Registriert: Mo 17. Sep 2012, 21:27

Re: Test gesucht: Großbuchstabe (upper case) oder Kleinbuchstabe (lower case)?

Beitrag von Lienucks » Sa 7. Mär 2020, 21:22

Vielen Dank für die Antworten!

Mit Asc() löse ich das Problem für die Buchstaben, die im englischen Alphabet vorkommen. Da ich aber nicht nur deutsche Texte (mit Umlauten), sondern teilweise auch Textteile mit "Sonderzeichen" schreibe, reicht das für die allermeisten Fälle, aber eben nicht ganz.

Sehr gut gefällt mir der Test IF char=LCASE(char) THEN. (Mit etwas mehr Intelligenz hätte ich auch selbst draufkommen können ;) ). Damit werde ich es mal probieren.

Das mitgelieferte Python-Makro habe ich auch schon bearbeitet (auch wenn ich kein Python kann) und habe den Teil rausoperiert, der alles großschreibt. Leider bleibt nach dem Aufruf ein Bereich markiert. Jörn, hast du eine Idee, wie ich den Cursor an das rechte Ende der Markierung stelle und die Markierung entferne?

MfG
Lienucks

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

Re: Test gesucht: Großbuchstabe (upper case) oder Kleinbuchstabe (lower case)?

Beitrag von Wanderer » So 8. Mär 2020, 09:09

Hallo,

genauer habe ich mir das Macro auch jetzt erst angesehen.
Ich würde als erstes versuchen die beiden Befehle

Code: Alles auswählen

xSelectionSupplier.select()
einmal zu entfernen, da sie wahrscheinlich die Selektion des konvertierten Strings erledigen.

Falls Dir so etwas vorschwebt, wie direkt zum nächsten Wort zu springen, schau Dir Mal die Selektion durch Bewegung des Cursors in dem Macro an.

Mfg, Jörn

PS: Ich kenne keine Möglichkeit einen Satz der z.B. Alexander von Humboldt enthält automatisch ohne Wörterbuch umzuschreiben. Wie willst Du das Problem denn angehen? Neben den Adligen hatte ich bei meinen Küntler-Datenbanken auch immer Probleme mit Monogrammist JB oder Kollektiv XYZ-DINGSDA....
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

Lienucks
Beiträge: 20
Registriert: Mo 17. Sep 2012, 21:27

Re: Test gesucht: Großbuchstabe (upper case) oder Kleinbuchstabe (lower case)?

Beitrag von Lienucks » Mo 9. Mär 2020, 20:36

Hallo Jörn,

herzlichen Dank für den Python-Tipp! Ich habe die beiden Zeilen mit xSelectionSupplier.select() auskommentiert, und jetzt macht das Skript genau das, was ich möchte. Außerdem hatte ich mir schon ein Basic-Makro geschrieben, das dasselbe macht. Mein Problem ist zweimal gelöst - vielen Dank!

Dein P.S. verstehe ich allerdings überhaupt nicht. Ich sehe auch keinen Zusammenhang mit meinem Problem.

Mit freundlichen Grüßen

Lienucks


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