Re: [de-users] Basic Makro - Syntax Highlighting

2020-08-07 Diskussionsfäden OoOHWHOoO

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

2020-08-06 Diskussionsfäden OoOHWHOoO

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

2020-08-06 Diskussionsfäden Robert Großkopf
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

2020-08-06 Diskussionsfäden Hans-Werner Herold

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

2020-08-06 Diskussionsfäden OoOHWHOoO

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

2020-08-06 Diskussionsfäden OoOHWHOoO

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

2020-08-06 Diskussionsfäden Robert Großkopf
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

2020-08-06 Diskussionsfäden Richard Kraut
-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

2020-08-06 Diskussionsfäden OoOHWHOoO

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

2020-08-06 Diskussionsfäden Robert Großkopf
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

2020-08-06 Diskussionsfäden OoOHWHOoO

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

2020-08-06 Diskussionsfäden Robert Großkopf
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

2020-08-06 Diskussionsfäden OoOHWHOoO

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

2020-08-06 Diskussionsfäden OoOHWHOoO

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