[gelöst] Können Makros dateiübergreifend aufgezeichnet werden?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

kilix
****
Beiträge: 128
Registriert: So, 09.04.2023 11:27

Re: Können Makros dateiübergreifend aufgezeichnet werden?

Beitrag von kilix »

Gelöst!
Ich habe einen Code gefunden der den Name der aktuellen Directory in eine Variable speichert: das sieht jetzt so aus:

Code: Alles auswählen

	surl = thiscomponent.url
	apfad = split(surl,"/")
	apfad(ubound(apfad)) = ""
	spfad = join(apfad,"/")
   	sURL = convertToURL(spfad+"Daten.csv")
   	oCSV = StarDesktop.LoadComponentFromURL(sURL(0), "_blank", 0, args())
Nachdem das jetzt so funktioniert wie es meine Anwendung optimal ist bedanke ich mich noch einmal für die großartige Hilfe. Durch mein Suchen nach Code-Beispielen bin ich zwar nicht in die Geheimnisse der "Nicht-Basic-Codes" eingedrucngen habe aber doch eine gewisse vage Vorstellung gewonnen wie diese funktionieren. Für die nächste Zeit habe einiges zu tun, um meine Anwendung mit aufzeichenbaren Makros zu vervollständigen. Wenn ich dann zu den Übertragungen von ODS zu ODS komme werde ich versuchen das bisher gelernte (oder abgeschriebene ;-))) anzupassen. Wahrscheinlich ergeben sich dann wieder Fragen mit denen ich mich gerne wieder an euch wenden werde.
Grüße
kilix
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Können Makros dateiübergreifend aufgezeichnet werden?

Beitrag von mikeleb »

Hallo,
schön, das es funktioniert. Den letzten Code könntest du noch etwas vereinfachen (wenn du den Pfad nicht noch für etwas anderes brauchst):

Code: Alles auswählen

	surl = thiscomponent.url
	apfad = split(surl,"/")
	apfad(ubound(apfad)) = "Daten.csv"
   	sURL = convertToURL(join(apfad,"/"))
   	oCSV = StarDesktop.LoadComponentFromURL(sURL, "_blank", 0, args())
Gruß,
mikeleb
kilix
****
Beiträge: 128
Registriert: So, 09.04.2023 11:27

Re: Können Makros dateiübergreifend aufgezeichnet werden?

Beitrag von kilix »

Danke, das werde ich so ändern denn ich brauche das immer nur zwischen 2 Dokumenten.

Aber eine andere Frage habe ich noch: ich verwende diesen Makro in Windows 10. Läuft der auch unter den anderen Betriebssystemen unter denen OpenOffice läuft und funktionieren diese Makros auch unter LibreOffice?
Eines erscheint mir klar: wenn jemand die Dokumente nach Excel konvertiert wird er auch die Makros neu schreiben müssen aber dieses Problem ist nicht mein Problem :)
Grüße
kilix
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: [gelöst] Können Makros dateiübergreifend aufgezeichnet werden?

Beitrag von Hiker »

Grundsätzlich laufen die Macros auch unter Linux. Problematisch sind absolute Dateinamen wie bei Dir

Code: Alles auswählen

convertToURL("f:\SVSTST\Daten.csv")
Ähnliche Fallen gibt es bei Gross- und Kleinschreibung, die bei Windows für Dateien ignoriert wird. Datei.csv findet unter Windows also auch datei.CSV aber eben nicht unter Linux.

Von Open nach LibreOffice funktioniert auch fast alles, bei LibreOffice muss man auf Neuerungen verzichten, die OpenOffice nicht kennt...
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
kilix
****
Beiträge: 128
Registriert: So, 09.04.2023 11:27

Re: [gelöst] Können Makros dateiübergreifend aufgezeichnet werden?

Beitrag von kilix »

Danke,
ich werde vorbauend gleich alle Großbuchstaben in Datei- und Verzeichnisnamen auf Kleinbuchstaben ändern.
Grüße
kilix
Antworten