🙏 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. 🤗

[gelöst] ReadSourceDirectory aus der Bibliothek Gimmicks geht nicht

Alles zur Programmierung im LibreOffice.
Benutzeravatar
Basilisk
Beiträge: 77
Registriert: Do 26. Jun 2014, 14:06

[gelöst] ReadSourceDirectory aus der Bibliothek Gimmicks geht nicht

Beitrag von Basilisk » Mi 3. Jul 2024, 10:24

Es findet die FileNameoutofPath-Funktion nicht.
ReadSourceDirectory-fehler-03-07-2024.png
ReadSourceDirectory-fehler-03-07-2024.png (148.67 KiB) 2878 mal betrachtet
Ich habe die Bibliothek mit GlobalScope.BasicLibraries.LoadLibrary("Gimmicks") geladen. Als ich gestern ein kleines Testprogramm erstellte, um festzustellen, was ReadSourceDirectory eigentlich genau zurückliefert*, ging noch alles problemlos. Erst seit heute tritt der Fehler auf.

*Spoiler: ein zweidimensionales Feld, das rekursiv alle Unterverzeichnisenamen und Dateinamen aus dem Verzeichnis enthält dessen Name in der Variablen Source übergeben wurde und zwar voll qualifiziert in URL-Notation in der ersten Spalte und kurz in der zweiten Spalte
Zuletzt geändert von Basilisk am Mi 3. Jul 2024, 17:35, insgesamt 1-mal geändert.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2538
Registriert: Fr 10. Dez 2010, 10:01

Re: ReadSourceDirectory aus der Bibliothek Gimmicks geht nicht

Beitrag von karolus » Mi 3. Jul 2024, 10:33

Hallo
Super! Jetzt wissen wir daß du schon Screenshots kannst, wäre aber nicht nötig gewesen, viel freundlicher ist da simples copy&paste des Quelltexts!
Danke!
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Benutzeravatar
Basilisk
Beiträge: 77
Registriert: Do 26. Jun 2014, 14:06

Re: ReadSourceDirectory aus der Bibliothek Gimmicks geht nicht

Beitrag von Basilisk » Mi 3. Jul 2024, 11:05

karolus hat geschrieben:
Mi 3. Jul 2024, 10:33
... viel freundlicher ist da simples copy&paste des Quelltexts!
Der Quelltext von was? Von ReadSourceDirectory? Ich dachte, der wäre bei jeder Libreofficeinstallation dabei. Das ist auch der Grund, warum ich ihn verwenden will. Ist das nicht so?

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2538
Registriert: Fr 10. Dez 2010, 10:01

Re: ReadSourceDirectory aus der Bibliothek Gimmicks geht nicht

Beitrag von karolus » Mi 3. Jul 2024, 11:12

Basilisk hat geschrieben:
Mi 3. Jul 2024, 11:05
karolus hat geschrieben:
Mi 3. Jul 2024, 10:33
... viel freundlicher ist da simples copy&paste des Quelltexts!
Der Quelltext von was? Von ReadSourceDirectory? Ich dachte, der wäre bei jeder Libreofficeinstallation dabei. Das ist auch der Grund, warum ich ihn verwenden will. Ist das nicht so?
Nee… DEINEN Quelltext… oder führst du etwa direkt »ReadSourceDirectory« aus der BasicIDE aus??
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Benutzeravatar
Basilisk
Beiträge: 77
Registriert: Do 26. Jun 2014, 14:06

Re: ReadSourceDirectory aus der Bibliothek Gimmicks geht nicht

Beitrag von Basilisk » Mi 3. Jul 2024, 13:23

karolus hat geschrieben:
Mi 3. Jul 2024, 11:12
Nee… DEINEN Quelltext… oder führst du etwa direkt »ReadSourceDirectory« aus der BasicIDE aus??
Es ist wie gesagt nur ein Testprogramm und darin tritt kein Fehler auf

Code: Alles auswählen

Sub SuspiciousFiles(Optional vObject as Variant)
Dim vasFiles As Variant 
Dim sDir As String
GlobalScope.BasicLibraries.LoadLibrary("Gimmicks")
sDir = "/home/gh2425/bin"
Dim oFP as Object
oFP = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
vasFiles = ReadSourceDirectory(sDir)
MsgBox CStr(LBound(vasFiles,1))
End Sub
NB: Ich weiß, dass 1 der Defaultwert bei LBound ist. Das steht da, um mich zu erinnern. Der Filepicker tut absichtlich derzeit noch nichts.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2538
Registriert: Fr 10. Dez 2010, 10:01

Re: ReadSourceDirectory aus der Bibliothek Gimmicks geht nicht

Beitrag von karolus » Mi 3. Jul 2024, 15:18

Hallo
NB: Ich weiß, dass 1 der Defaultwert bei LBound ist. Das steht da, um mich zu erinnern.
Die msgbox behauptet bei mir 0 wäre der Defaultwert, und nicht 1, ansonsten hilfts ja jetzt niemanden wenn du Code zeigst der funktioniert!

wenn ich jetzt mal wild raten darf… …?

GESTERN hast du einen Beobachter (F7) auf die variable »vasfiles« gesetzt und bist im Einzelschrittmodus durch deinen Code durchgehoppelt??
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Benutzeravatar
Basilisk
Beiträge: 77
Registriert: Do 26. Jun 2014, 14:06

Re: ReadSourceDirectory aus der Bibliothek Gimmicks geht nicht

Beitrag von Basilisk » Mi 3. Jul 2024, 16:19

karolus hat geschrieben:
Mi 3. Jul 2024, 15:18
NB: Ich weiß, dass 1 der Defaultwert bei LBound ist. Das steht da, um mich zu erinnern.
Die msgbox behauptet bei mir 0 wäre der Defaultwert, und nicht 1, ...
Die MsgBox behauptet etwas über LBound? Ich meine das hier

Wird kein Wert angegeben, so wird standardmäßig die erste Dimension betrachtet.
karolus hat geschrieben:
Mi 3. Jul 2024, 15:18
ansonsten hilfts ja jetzt niemanden wenn du Code zeigst der funktioniert!
Das war mein ursprünglicher Gedanke. Mein Code funktioniert, also brauche ich ihn nicht zu zeigen.
karolus hat geschrieben:
Mi 3. Jul 2024, 15:18
wenn ich jetzt mal wild raten darf… …?
Mir bliebe auch nichts anders.
karolus hat geschrieben:
Mi 3. Jul 2024, 15:18
GESTERN hast du einen Beobachter (F7) auf die variable »vasfiles« gesetzt und bist im Einzelschrittmodus durch deinen Code durchgehoppelt??
Leider nein. Gestern war mein Code auch noch komplexer, weil ich wie gesagt rausfinden wollte, wie der Rückgabewert zusammengesetzt ist.

Benutzeravatar
Basilisk
Beiträge: 77
Registriert: Do 26. Jun 2014, 14:06

Re: ReadSourceDirectory aus der Bibliothek Gimmicks geht nicht

Beitrag von Basilisk » Mi 3. Jul 2024, 17:18

Ich habe jetzt an ganz anderen Dingen rumgebastelt und jetzt funktioniert es

Auch das

Code: Alles auswählen

Sub SuspiciousFiles(Optional vObject as Variant)
Dim vasFiles As Variant 
Dim sDir As String
GlobalScope.BasicLibraries.LoadLibrary("Gimmicks")
sDir = "/home/gh2425/bin"
Dim oFP as Object
oFP = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
vasFiles = ReadSourceDirectory(sDir)
Dim lLBound As Long, lUBound As Long, lCount As Long
lLBound = LBound(vasFiles, 1)
lUBound = UBound(vasFiles, 1)
For lCount = lLBound To IIf (lUBound < 3, lUBound, 3)
	MsgBox vasFiles(lCount, 1)
Next lCount
End Sub

Benutzeravatar
Basilisk
Beiträge: 77
Registriert: Do 26. Jun 2014, 14:06

Re: ReadSourceDirectory aus der Bibliothek Gimmicks geht nicht

Beitrag von Basilisk » Mi 3. Jul 2024, 17:21

Basilisk hat geschrieben:
Mi 3. Jul 2024, 17:18
Ich habe jetzt an ganz anderen Dingen rumgebastelt und jetzt funktioniert es

Auch das

Code: Alles auswählen

Sub SuspiciousFiles(Optional vObject as Variant)
Dim vasFiles As Variant 
Dim sDir As String
GlobalScope.BasicLibraries.LoadLibrary("Gimmicks")
sDir = "/home/gh2425/bin"
Dim oFP as Object
oFP = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
vasFiles = ReadSourceDirectory(sDir)
Dim lLBound As Long, lUBound As Long, lCount As Long
lLBound = LBound(vasFiles, 1)
lUBound = UBound(vasFiles, 1)
For lCount = lLBound To IIf (lUBound < 3, lUBound, 3)
	MsgBox vasFiles(lCount, 1)
Next lCount
End Sub
Ich habe LibreOffice geschlossen, die Datei wieder geöffnet und jetzt tritt wieder der Fehler auf.

Jetzt habe ich die Zeile

Code: Alles auswählen

GlobalScope.BasicLibraries.LoadLibrary("Tools")
eingefügt und die Reparatur übersteht auch einen Neustart. Die Funktion war wohl nicht für externe aufrufe gedacht.

Danke.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2538
Registriert: Fr 10. Dez 2010, 10:01

Re: [gelöst] ReadSourceDirectory aus der Bibliothek Gimmicks geht nicht

Beitrag von karolus » Mi 3. Jul 2024, 17:50

Hatte ich schon den entsprechenden Code in python gezeigt?

Code: Alles auswählen

from pathlib import Path

basedir = Path.home() / "Documents"
list( basedir.glob("**/*"))
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)


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