Seite 1 von 1

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

Verfasst: Mo 2. Jul 2012, 17:18
von Decurtins
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

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

Verfasst: Mo 2. Jul 2012, 20:57
von komma4
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

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

Verfasst: Mo 2. Jul 2012, 21:08
von F3K Total
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

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

Verfasst: Di 3. Jul 2012, 06:32
von Decurtins
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

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

Verfasst: Do 5. Jul 2012, 21:39
von komma4
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