Re: [de-users] Basic Makro - Syntax Highlighting
Sorry, falscher Absender ... -- Weitergeleitete Nachricht -- Von: "Hans-Werner Herold" An: "users@de.libreoffice.org" Gesendet: 07.08.2020 19:59:19 Betreff: Re: [de-users] Basic Makro - Syntax Highlighting Hallo Robert und *, mit der letzten Mail hatte ich Dir zwar mitgeteilt, dass ich das "größere Problem" lösen konnte, aber in der Nachschau empfinde ich diese Lösung als "quick and dirty" beziehungsweise als "Gemurkse" mit diesen damit verbundenen Rückfärbungen. Das ist einfach keine "saubere" und allgemeine Lösung. Über die Thematik Anführungszeichen " und einfache Anführungszeichen ' muss ich erst nochmals gründlich nachdenken. Wenn man nicht exakt das Problem formulieren kann, dann kann man auch keine Lösung des Problems finden/formulieren. Das Problem bei "regulären Ausdrücken" ist deren sogenannte "Gefräßigkeit", wenn's passt ... Beispielsweise soll nachfolgender BasiCMakroCode VarA = "ABC" & Var1 & "DEF" & Var2 & "GHI" VarB = """ABC""" & Var1 & """DEF""" & Var2 & """GHI""" VarC = "°°ABC°°" & Var1 & "°°DEF°°" & Var2 & "°°GHI°°" mit diesen SearchStrings (aus dem Makro) oRD.SearchString = """+" oRD.SearchString = """[[:alnum:]+|[:space:]+|\^|!|=|\-|_|,|\.|;|:|\\|/|(|)|@|\||<|>|\*|\$|'|\[|\]|%|\?|€|#|&|\+|§|°]+""" bearbeitet werden in dem Sinne, dass das, was gefunden wurde ("..."-Zeichenketten), rot eingefärbt wird. OKAY => "VarA"-Zeile Nur "ABC" und "DEF" und "GHI" werden rot eingefärbt. ERROR => "VarB"-Zeile Alles rechts vom = wird rot eingefärbt. OKAY => "VarC"-Zeile Nur "°°ABC°°" und "°°DEF°°" und "°°GHI°°" werden rot eingefärbt. Wenn man sich das Ergebnis anschaut, so scheint eine Lösung zu sein, dass man erst mal alle "" innerhalb von 2 " in sonst nicht vorkommende Zeichen umwandelt. Im BasicMakroCode ist es eben so, will man in einer Zeichenkette ein Anführungszeichen angeben, so muss man dieses "maskieren" durch Doppel-Kodierung. Und bei Datenbank-Makros kommt diese Situation eben sehr oft vor. So wird es wohl bis zu "SyntaxHighlightingV2" noch eine Weile dauern ... Grüße Hans-Werner :-)) PS: Eine Variabilität bei der Schlüsselwort-Bearbeitung ist inzwischen realisiert. Man kann zwischen "klein" => nur Klein-Buchstaben "groß" => nur Groß -Buchstaben "exakt" => exakt so wie in der Liste definiert "beliebig" => mal so oder mal so wählen, womit erst mal jeder Kodierstil abgedeckt ist, wobei natürlich bei der Varianten "exakt" die Wahrscheinlichkeit, dass Teile anderer Zeichenketten fälschlicherweise als Schlüsselwort erkannt werden am geringsten ist. Ausnahme "groß": Wenn man alle Schlüsselworte, und sonst nichts anderes, als Folge von Großbuchstaben kodiert, dann sollte die Trefferquote genauso gut sein. -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] Basic Makro - Syntax Highlighting
Hallo Robert, das größere Problem "[...] bei Zeilen dieser Art stSql = "SELECT ""ID"" FROM """+NameTabelle1+""" WHERE """+NameTabellenFeld1+"""='"+stInhalt+"'" sind +NameTabelle1+ | +NameTabellenFeld1+ | +stInhalt+ rot eingefärbt [...]" konnte ich mit '7 Datenbank-Makro (optional) If (DBM = "ja" ) Then ' 7.1 Zeichenkette rückfärben: oRD.SearchString = """.*(""'|'""|'.'|.'.).*""" aAttR(0).Name = "CharColor" aAttR(0).Value = Red oRD.SetReplaceAttributes(aAttR()) oRD.ReplaceString = "&" oDok.replaceAll(oRD) ' 7.2 MacroCode rückfärben: oRD.SearchString = "\+[[:alnum:]|_]+\+" aAttR(0).Name = "CharColor" aAttR(0).Value = Green oRD.SetReplaceAttributes(aAttR()) oRD.ReplaceString = "&" oDok.replaceAll(oRD) ' 7.3 +-Zeichen rückfärben: oRD.SearchString = "\+" aAttR(0).Name = "CharColor" aAttR(0).Value = BlueNA oRD.SetReplaceAttributes(aAttR()) oRD.ReplaceString = "&" oDok.replaceAll(oRD) EndIf lösen. Dazu müsste ich noch wissen, welche Regeln für diese Bezeichner zwischen 2 +-Zeichen gelten. Ich habe mich jetzt mal an den Regeln für Variablen orientiert: alpha-numerisch und Unterstrich. So etwas FUNCTION String_to_SQL(st AS STRING) IF InStr(st,"'") THEN st = Join(Split(st,"'"),"''") kann ich nicht kompensieren, zu viele Nebeneffekte. Da hilft nur alternative Kodierung, die unter dem Aspekt Kode-Lesbarkeit auch vertretbar ist, wenn man nicht manuell nachfärben möchte: FUNCTION String_to_SQL(st AS STRING) IF InStr(st,Chr(39)) THEN st = Join(Split(st,Chr(39)),Chr(39) & Chr(39)) oder via Dim EA As String : EA = Chr(39) ' Einfaches Anführungszeichen FUNCTION String_to_SQL(st AS STRING) IF InStr(st,EA) THEN st = Join(Split(st,EA),EA & EA) Gilt auch für: Feldtrenner = Join(Split(aErster(1),"'"),"") Dies REM Funktion, um gegebenenfalls auch " ' " in einem String bei der Eingabe in die Datenbank zu ermöglichen. Bei dBase notwendig. konnte ich durch Umstellung der Kolorierung der REM-Kommentare als letzten Makro-Abschnitt kompensieren. Würde obiger Kommentar mit einem ' eingeleitet, müsste man sich für das " ' " eine andere Schreibweise/Formulierung ausdenken, sonst gibts ne Fehlfärbung. Neues Ergebnis "Robert.odt" und "Robert_MOD.ods" (mit eingebauten Kodierungsvorschlägen bezüglich Chr(39)) via CC: an Dich. Ich habe jetzt keine Fehlfärbungen (@ Robert_MOD.ods) mehr gefunden, was allerdings bei einem Test mit nur einem Datenbank-Makro nicht unbedingt repräsentativ ist ... Gruß Hans-Werner :-)) -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] Basic Makro - Syntax Highlighting
Hallo Richard, > > Doch. Die Datei gibt es. > Versuch es mal über den folgenden Link: > < > https://www.familiegrosskopf.de/robert/base_beispiele/Beispiel_Combobox_Listfeld_Firebird.odb > Ich habe mir so etwas ähnliches gedacht, als ich den Link sah und dann wusste, dass die Seite ja selbst über https zu erreichen ist. Ich habe jetzt schnell die Scripte in jedem Verzeichnis angepasst, aus dem direkt die Dateien ausgelesen werden. Jetzt werden auch die https-Links direkt angegeben. Gruß Robert -- Homepage: https://www.familiegrosskopf.de/robert -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] Basic Makro - Syntax Highlighting
Hallo Robert, Du siehst es ja via Dateianhang, Beschreibung ist nur für andere Interessierte: Hier > IF InStr(st,"'") THEN < hat das Makro ab > '") THEN < grau eingefärbt. Hier > st = Join(Split(st,"'"),"''") < ist die schließende Klammer > ) < grau geblieben. Hier > Feldtrenner = Join(Split(aErster(1),"'"),"") < ist die schließende Klammer > ) < grau geblieben. Und bei Zeilen dieser Art stSql = "SELECT ""ID"" FROM """+NameTabelle1+""" WHERE """+NameTabellenFeld1+"""='"+stInhalt+"'" sind +NameTabelle1+ | +NameTabellenFeld1+ | +stInhalt+ rot eingefärbt, obwohl sie grün bleiben sollten. Dass diese überirdischen " und ' Konstellationen problematisch sind, hatte ich ja schon in der Makro-Beschreibung im Makro dargelegt. Aber da kann man sicherlich noch etwas machen, nur eben nicht "auf die Schnelle". Ich denke schon, dass das Makro mit genügend "Futter" noch "lernen" kann. Ich hatte ja erst mal nur relativ einfache Konstellationen berücksichtigt. Schau'n mer mal, habe ja jetzt eine Übungsdatei ... Ergebnis mit Dateianhang "Robert.ods" via "CC:" an Dich. Die Bearbeitungszeit für diese 367 Makro-Zeilen war 2 Sekunden. Falls Dir noch andere Fehler, beispielsweise bei den Schlüsselwörtern et cetera, auffallen sollten, lass es mich bitte wissen. Gruß Hans-Werner :-)) -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] Basic Makro - Syntax Highlighting
Richi hat geholfen: Das fehlende s bei http://www.familiegrosskopf.de/robert/base_beispiele/Beispiel_Combobox_Listfeld_Firebird.odb hat den FireFox gestört. Download hat geklappt ... -- Originalnachricht -- Von: "Robert Großkopf" An: users@de.libreoffice.org Gesendet: 06.08.2020 17:58:03 Betreff: Re: [de-users] Basic Makro - Syntax Highlighting Hallo Hans-Werner, mache ich gerne, aber der Link liefert nur ein "Objekt nicht gefunden!". Wird der Link bei Dir umgebrochen? Wenn ich auf das Klicke, was deine Mail an die Liste enthält, dann wird die Datei bei mir zum Download angeboten. Du kannst auch auf meiner Homepage auf LibreOffice → Beispieldatenbanken gehen. Da steht die Datei in dem Kasten "Beispieldatenbanken" zum Download bereit. Gruß Robert -- Homepage: https://www.familiegrosskopf.de/robert -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] Basic Makro - Syntax Highlighting
So isser nun mal der FireFox ... Danke für den Hinweis ... so funktioniert der Link. Grüße Hans-Werner :-)) -- Originalnachricht -- Von: "Richard Kraut" An: users@de.libreoffice.org Gesendet: 06.08.2020 17:56:10 Betreff: Re: [de-users] Basic Makro - Syntax Highlighting Signatur hat Probleme -BEGIN PGP SIGNED MESSAGE- Hash: SHA512 Am Donnerstag, den 06.08.2020, 15:45 + schrieb OoOHWHOoO: > mache ich gerne, aber der Link liefert nur ein "Objekt nicht gefunden!". Doch. Die Datei gibt es. Versuch es mal über den folgenden Link: < https://www.familiegrosskopf.de/robert/base_beispiele/Beispiel_Combobox_Listfeld_Firebird.odb > Evtl. möchte Dein Browser ja einfach keine unverschlüsselten Seiten öffnen? - -- MfG Richi -BEGIN PGP SIGNATURE- iQIzBAEBCgAdFiEERqPC1cUAShrzNBXW+NRy+KEKcZgFAl8sKBUACgkQ+NRy+KEK cZjQrQ/+PnbQUkJA5JsN3Q5yQLrvTq2ucArllXl9HCnLLAWs39M3jDIMp8WNa1Ww fy47LdxclQ8s8gkXsptrvutmqE4qBAETBKUdRfGxZ9lsIO7+kxFnDSkG2VJq/dLf GSCGDNPMRH9ZffTPnmsZ89RSCIfRC1Qkkh7ID6pIllZUUAxExpAutzCeCj9Vs1kq +jNXoqytzqIljbLbEWbyeJfftLFud+6vJ2eQugf3SLb70HBoerEnn8eYntB4mO1a JiWIbAygmwCt6TX6wEPI2wn+JOTmhecUwLgKeOejICV2FyxT5BqmJgE16pQqWOml RgzOeVLHFH7kn9Nq/BqZO1UWz8YL6lFL8D2YPOIKkOJPiC4/zcW9cXfPGmthiguX jRenOpppgOYToGtsjtpoUQVSCbwfqWyRC7DxZUrLKKqYE5fwBTeEqNVigTRL7RBZ eewTKzRS9lCOTGNQa/X6lzZKj6hp1UkFs5QBl0CmymxnkLkSjGeiBvm11U7+v1tj J/XHN/dolyMIVH4pTZEo0xHyG5ad3XNrsCxcQXx+two+umX8+Kit8nPjb1dtX65C BIKThr43xOzQX9y+1cadsPwuJa7CQjpUrFAUG97hnz4gCPAeqdzWx2pZUuFHUcv2 9hK4P2IYa2ROV2uk6e7o7Ysuc2X24TyYttXJqzrKbAkg7FVekzI= =pw2Z -END PGP SIGNATURE- -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] Basic Makro - Syntax Highlighting
Hallo Hans-Werner, > > mache ich gerne, aber der Link liefert nur ein "Objekt nicht gefunden!". Wird der Link bei Dir umgebrochen? Wenn ich auf das Klicke, was deine Mail an die Liste enthält, dann wird die Datei bei mir zum Download angeboten. Du kannst auch auf meiner Homepage auf LibreOffice → Beispieldatenbanken gehen. Da steht die Datei in dem Kasten "Beispieldatenbanken" zum Download bereit. Gruß Robert -- Homepage: https://www.familiegrosskopf.de/robert -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] Basic Makro - Syntax Highlighting
-BEGIN PGP SIGNED MESSAGE- Hash: SHA512 Am Donnerstag, den 06.08.2020, 15:45 + schrieb OoOHWHOoO: > mache ich gerne, aber der Link liefert nur ein "Objekt nicht gefunden!". Doch. Die Datei gibt es. Versuch es mal über den folgenden Link: < https://www.familiegrosskopf.de/robert/base_beispiele/Beispiel_Combobox_Listfeld_Firebird.odb > Evtl. möchte Dein Browser ja einfach keine unverschlüsselten Seiten öffnen? - -- MfG Richi -BEGIN PGP SIGNATURE- iQIzBAEBCgAdFiEERqPC1cUAShrzNBXW+NRy+KEKcZgFAl8sKBUACgkQ+NRy+KEK cZjQrQ/+PnbQUkJA5JsN3Q5yQLrvTq2ucArllXl9HCnLLAWs39M3jDIMp8WNa1Ww fy47LdxclQ8s8gkXsptrvutmqE4qBAETBKUdRfGxZ9lsIO7+kxFnDSkG2VJq/dLf GSCGDNPMRH9ZffTPnmsZ89RSCIfRC1Qkkh7ID6pIllZUUAxExpAutzCeCj9Vs1kq +jNXoqytzqIljbLbEWbyeJfftLFud+6vJ2eQugf3SLb70HBoerEnn8eYntB4mO1a JiWIbAygmwCt6TX6wEPI2wn+JOTmhecUwLgKeOejICV2FyxT5BqmJgE16pQqWOml RgzOeVLHFH7kn9Nq/BqZO1UWz8YL6lFL8D2YPOIKkOJPiC4/zcW9cXfPGmthiguX jRenOpppgOYToGtsjtpoUQVSCbwfqWyRC7DxZUrLKKqYE5fwBTeEqNVigTRL7RBZ eewTKzRS9lCOTGNQa/X6lzZKj6hp1UkFs5QBl0CmymxnkLkSjGeiBvm11U7+v1tj J/XHN/dolyMIVH4pTZEo0xHyG5ad3XNrsCxcQXx+two+umX8+Kit8nPjb1dtX65C BIKThr43xOzQX9y+1cadsPwuJa7CQjpUrFAUG97hnz4gCPAeqdzWx2pZUuFHUcv2 9hK4P2IYa2ROV2uk6e7o7Ysuc2X24TyYttXJqzrKbAkg7FVekzI= =pw2Z -END PGP SIGNATURE- -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] Basic Makro - Syntax Highlighting
Hallo Robert, mache ich gerne, aber der Link liefert nur ein "Objekt nicht gefunden!". Grüße Hans-Werner :-)) -- Originalnachricht -- Von: "Robert Großkopf" An: users@de.libreoffice.org Gesendet: 06.08.2020 17:37:26 Betreff: Re: [de-users] Basic Makro - Syntax Highlighting Hallo Hans-Werner, teste doch einmal an dem Code von http://www.familiegrosskopf.de/robert/base_beispiele/Beispiel_Combobox_Listfeld_Firebird.odb Gerade die Geschichte mit den ' innerhalb von Text kommt ja bei Datenbanken häufiger vor, weil in einfache Anführungszeichen die abzufragenden Inhalte (Text) gesetzt werden. Schicke mir einmal eine so erzeugte Writer-Datei, damit ich sehen kann, ob ich so etwas gut weiter nutzen kann. Es geht vor allem darum, den Code demnächst in einem Rutsch anzugeben wie in dem Buch zu den Beispieldatenbanken. Dann füge ich über die Nummerierung Zeilennummern davor und beziehe mich mit dem Text auf die Zeilennummern. Gruß Robert -- Homepage: https://www.familiegrosskopf.de/robert -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] Basic Makro - Syntax Highlighting
Hallo Hans-Werner, teste doch einmal an dem Code von http://www.familiegrosskopf.de/robert/base_beispiele/Beispiel_Combobox_Listfeld_Firebird.odb Gerade die Geschichte mit den ' innerhalb von Text kommt ja bei Datenbanken häufiger vor, weil in einfache Anführungszeichen die abzufragenden Inhalte (Text) gesetzt werden. Schicke mir einmal eine so erzeugte Writer-Datei, damit ich sehen kann, ob ich so etwas gut weiter nutzen kann. Es geht vor allem darum, den Code demnächst in einem Rutsch anzugeben wie in dem Buch zu den Beispieldatenbanken. Dann füge ich über die Nummerierung Zeilennummern davor und beziehe mich mit dem Text auf die Zeilennummern. Gruß Robert -- Homepage: https://www.familiegrosskopf.de/robert -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] Basic Makro - Syntax Highlighting
Hallo Robert, im Detail verstehe ich Deine Arbeitsschritte nicht wirklich, aber egal. Mein Makro benutzt als Eingabe-/Ausgabe-Medium eine geöffnete WRITER-Datei (eine neue oder eine bereits existierende) und erwartet dort BasicMakroCode. In der konkreten Anwendung kannst Du also so vorgehen: 1. Aus der Basic-IDE oder einer anderen Datei, beispielsweise WRITER, den BasicMakroCode (mit der Maus via Zwischenablage) kopieren und einfügen. 2. Das Makro starten. 3. Den nun kolorierten BasicMakroCode (mit der Maus via Zwischenablage) kopieren und einfügen, wo auch immer Du willst. Das Makro interessiert sich nur für die WRITER-Datei mit dem zu kolorierenden BasicMakroCode, benötigt aber wegen "ThisComponent" den Fokus auf diese Makro-Datei - bevor es gestartet wird. Wenn Du möchtest, kannst Du mir gerne ein paar schön umfangreiche und "gemeine" ("gemein" im Sinne von: viele Kombinationen aus " und ' im MakroCode enthahltend) Makros senden, womit ich dann wunderbar testen könnte, ob die regulären Ausdrücke "einen guten Job" machen oder "das Handtuch werfen" ... Zusendung, wenn möglich an die Liste und mit CC: an mich. So können andere Interessierte zumindest die fachlichen Aspekte mitlesen. Zusätzlich zu der in meiner letzten Mail erwähnten "Farbsuche", wodurch das Problem - Kombination von Anführungszeichen " und einfachen Anführungszeichen ' im BasicMakroCode - wohl recht gut eingedämmt werden kann, habe ich noch eine weitere Idee zur verbesserten Schlüsselwort-Erkennung: Bis jetzt kann man nur "Groß-Klein-Schreibung" ein- oder ausschalten. Da Du, wie ich im dBase-Handbuch gesehen habe, Schlüsselwörter grundsätzlich groß schreibst, könnte es zu Fehl-Findungen kommen von besonders kurzen Schlüsselwörtern in anderem Kontext, da ja in Deinem Fall "Groß-Klein-Schreibung" abgeschaltet sein müsste - reguläre Ausdrücke sind da ziemlich erbarmungslos. Aber da kann man noch etwas verbessern: Bei eingeschalteter Groß-Klein-Schreibung kann man auch noch "fein" auswählen, wenn man möchte, zwischen (nur) [:lower:] oder (nur) [:upper:]. Damit könnte man dann ganz gezielt nach Schlüsselwörtern suchen, die nur groß oder nur klein geschrieben sind. Wie das alles konkret im BasicMakroCode umzusetzen ist, muss ich erst mal sehen. Es kann also etwas Zeit dauern, bis ich ein "SyntaxHighlightingV2" anbieten kann. Bis dahin, viele Grüße Hans-Werner :-)) -- Originalnachricht -- Von: "Robert Großkopf" An: users@de.libreoffice.org Gesendet: 06.08.2020 12:36:53 Betreff: Re: [de-users] Basic Makro - Syntax Highlighting Hallo Hans-Werner, das bedeutet, dass mit dem Makro für mich die umständliche Prozedur entfallen würde, jedes Makro in z.B. das Base-Handbuch einzulesen und dann die Zeilen einzeln nach ein festgelegten Vorlage zu bearbeiten? Gruß Robert -- Homepage: https://www.familiegrosskopf.de/robert -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
Re: [de-users] Basic Makro - Syntax Highlighting
Hallo Hans-Werner, das bedeutet, dass mit dem Makro für mich die umständliche Prozedur entfallen würde, jedes Makro in z.B. das Base-Handbuch einzulesen und dann die Zeilen einzeln nach ein festgelegten Vorlage zu bearbeiten? Gruß Robert -- Homepage: https://www.familiegrosskopf.de/robert -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
[de-users] Basic Makro - Syntax Highlighting
N A C H T R A G Die Makro-Schwachstelle der Fehlfärbungen bei Kombinationen von Anführungszeichen " und einfachen Anführungszeichen ' kann weitestgehend entschärft werden, das es für "replaceAll" auch möglich ist, für die zu suchende Zeichenkette Attribute anzugeben. Ist mir eben wieder eingefallen. Hatte das etwas verdrängt, weil es bei meinen frühen Experimenten nicht zuverlässig funktioniert hatte, soweit ich mich erinnere, aber vielleicht hatte ich da auch was nicht ganz richtig gemacht. Sähe dann ungefähr so aus: aAttS(0).Name = "CharColor" aAttS(0).Value = Green oRD.SetSearchAttributes(aAttS()) oRD.SearchString = "(^'|').*$" aAttR(0).Name = "CharColor" aAttR(0).Value = Grey oRD.SetReplaceAttributes(aAttR()) oRD.ReplaceString = "&" oDok.replaceAll(oRD) Mit anderen Worten, es wird nur dann grau eingefärbt, wenn die Schriftfarbe noch grün ist. Dadurch sollte es möglich sein zu verhindern, dass bereits rot eingefärbte Zeichenketten durch die abschließende graue Kommentar-Einfärbung wieder "zerschossen" (grau fehlgefärbt) werden. Schau'n mer mal ... Ein entsprechend modifiziertes Makro "SyntaxHighlightingV2" gegebenenfalls demnächst, muss das erst noch "ordentlich" einbauen und schauen, ob da nicht andere unerwünschte Nebeneffekte entstehen, damit dadurch nichts "verschlimmbessert" wird. Aber jetzt geht's erst mal in die Sonne, viele Grüße Hans-Werner :-)) -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
[de-users] Basic Makro - Syntax Highlighting
Hallo *, wen es interessiert: + Das Makro "SyntaxHighlighting.bas" basiert auf der Nutzung der BasicMakro-Funktionalität 'replaceAll' in Kombination mit regulären Ausdrücken. + Das Eingabe-/Ausgabe-Medium ist eine LibreOffice WRITER-Datei. + Zur Syntax-Kolorierung von 2500 BasicMakroCode-Zeilen werden zirka 8 Sekunden benötigt. + Das Makro beinhaltet eine sehr ausführliche Dokumentation. Entstanden ist die Idee zu diesem Makro aus anfänglichem "ein wenig experimentieren/spielen" mit der BasicMakro-Funktionalität 'replaceAll', beschrieben in: BASIC-Makros für OpenOffice und LibreOffice 4.7.3. Erweitertes Suchen und Ersetzen http://www.uni-due.de/~abi070/count.php?id=OOME_3_0_deutsch.pdf [Pitonyak/Lenhardt 20.02.2018 ] Diese Meinung muss man sicherlich nicht teilen, aber ich persönlich finde es schon erstaunlich, wie (sehr) viel man da mit ein paar regulären Ausdrücken, in der richtigen Reihenfolge, erreichen kann. [1] Algorithmus 1 Dokumentzeilen 1.1 Alle rechtsbündigen Leerzeichen entfernen 1.2 Schriftart, Schriftgröße und Schriftfarbe, alles auf GRÜN, setzen 2 Ziffern 2.1 Ziffern färben 2.2 Ziffern in Variablen rückfärben 3 Schlüsselwörter 3.1 Schlüsselwörter färben 4 Nicht-alphanumerische Zeichen 4.1 Nicht-alphanumerischen Zeichen färben 5 Zeichenketten 5.1 "-Folgen färben 5.2 Nicht leere Zeichenketten "..." färben 6 Kommentarzeilen 6.1 "'"-Kommentarzeilen färben 6.2 "REM"-Kommentarzeilen färben 6.3 '" und "' rückfärben (wenn optioniert) [2] Anwendung 1. Neues WRITER-Dokument öffnen. 2. Zu bearbeitenden BasicMakroCode in das WRITER-Dokument kopieren. 3. Makro 'SyntaxHighlighting' starten. [3] Nutzbare Steuer-Parameter im Makro-Abschnitt "BENUTZERBEREICH" 1. [ ja | nein ] Groß-Klein-Schreibung bei Schlüsselwörtern beachten ? 2. [ ja | nein ] Zeitmessung anzeigen ? 3. [ ja | nein ] Zusätzlich RegExp ".*(""'|'""|'.'|.'.).*" anwenden ? 4. Andere Schriftart als "Liberation Mono". 5. Andere Schriftgröße als "8". 6. [ ja | nein ] Benutzer-definierte Farben verwenden ? [4] Download-Link https://www.magentacloud.de/share/vtd8687phn beinhaltend: 1. Makro + SyntaxHighlighting.txt 2. Anwendungsbeispiele + SyntaxHighlighting - Parameter IDE-Standard.odt + SyntaxHighlighting - Parameter benutzerdefiniert.odt + CoronaNewsV2 - Parameter IDE-Standard.odt + CoronaNewsV2 - Parameter benutzerdefiniert.odt Feedback, Hinweise auf Fehler, Anregungen sind willkommen ... Viele Grüße Hans-Werner :-)) -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy