🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

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

Externes txt file mit Macros als Macros integrieren möglich?

Alles zur Programmierung im LibreOffice.
Antworten
Decurtins
Beiträge: 20
Registriert: So 20. Mai 2012, 16:55

Externes txt file mit Macros als Macros integrieren möglich?

Beitrag von Decurtins » Mo 2. Jul 2012, 17:18

Hallo miteinander

Ist es, wie beispielsweise in Javascript, möglich in Basic ein externes file mit Macros (meineMacros.txt o.ä.) einzulesen, zu integrieren?

Ich möchte meine Forms aus Base einzeln abspeichern und anderen usern zugänglich machen (also kann ich die Macros weder im Container von LibreOffice noch im eigentlichen BaseContainer platzieren), ohne dabei in jedem Form allfällige Anpassungen an den Macros vornehmen zu müssen.

liebe Grüsse und herzlichen Dank
Decurtins

komma4
Beiträge: 185
Registriert: Sa 13. Aug 2011, 10:01
Wohnort: Chonburi Thailand Asia
Kontaktdaten:

Re: Externes txt file mit Macros als Macros integrieren mögl

Beitrag von komma4 » Mo 2. Jul 2012, 20:57

Wieso die Makros nicht in der BASE-Datei gespeichert werden können sollten - erschliesst sich mir nicht.

Ansonsten können Makros einfach als EXTENSIONs verteilt (und upgedated!) werden.

Und ja: man kann auch Makros schreiben, die *.txt Dateien einlesen und in irgendeinem Makro-Container speichern...
siehe Quellcode von XRAY
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Externes txt file mit Macros als Macros integrieren mögl

Beitrag von F3K Total » Mo 2. Jul 2012, 21:08

Hallo,
ja, das geht, auch ohne Text-Datei.
Erfordert etwas Übung bei der Erzeugung des "Makro-Strings", und ist begrenzt auf etwa 65000 Zeichen pro Modul, da in Starbasic Strings nicht länger sind.
Hier ein Beispiel zur Erzeugung einer Library und eines Modules mit zwei Makros:

Code: Alles auswählen

Sub create_MakroLibrary_Module
olib=thiscomponent.basiclibraries
if olib.hasByName("Standard") then
msgbox "Library schon vorhanden"
else
olib.createLibrary("Standard")
msgbox "Library erzeugt"
endif
makroserzeugen
End Sub

sub makroserzeugen '1.) alle " durch "" ersetzen, 2.) alle CRLF durch "+chr(13)+" ersetzen 3.) ein " an den Anfang und das Ende
S_String="Sub S_TestMakro"+chr(13)+"msgbox ""Jetzt habe ich das Modul 'Neues Modul' und diese beiden Makros per Makro erzeugt"""+chr(13)+"End Sub"+chr(13)+chr(13)+"Sub S_TestMakro2"+chr(13)+"msgbox ""Und hier das zweite Makro"""+chr(13)+"End Sub"
create_Markro(S_String)
end sub

Sub create_Markro(S_String)
olib=thiscomponent.basiclibraries
olib_Standard=olib.getbyname("Standard")
dim Markro$
Makro=S_String
if olib_Standard.hasByName("NeuesModul") then
olib_Standard.replacebyname("NeuesModul",Makro)
msgbox "Modul mit Makros ersetzt"
else
olib_Standard.insertbyname("NeuesModul",Makro)
msgbox "neues Modul mit Makros erzeugt"
endif
oLib.setModified(True)
olib.storeLibraries("Standard")
msgbox "speichern nicht vergessen"
End Sub
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Decurtins
Beiträge: 20
Registriert: So 20. Mai 2012, 16:55

Re: Externes txt file mit Macros als Macros integrieren mögl

Beitrag von Decurtins » Di 3. Jul 2012, 06:32

Danke für die Antworten!

@F3K
Lernen macht Freude ;)

Ich würde gerne eine bestimmte (eben centrale) txt Datei einlesen und diese dann als String haben. Wie mach ich das?
@komma4
Wo im quellcode von xray find ich das? Ich bin halt noch newb... :D

komma4
Beiträge: 185
Registriert: Sa 13. Aug 2011, 10:01
Wohnort: Chonburi Thailand Asia
Kontaktdaten:

Re: Externes txt file mit Macros als Macros integrieren mögl

Beitrag von komma4 » Do 5. Jul 2012, 21:39

Decurtins hat geschrieben:Wo im quellcode von xray find ich das?

saveModuleText

im Modul Utilities des Containers XrayTool


Die Antwort von F3K enthält aber auch schon Deine gesuchte Lösung
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)


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