Makro für Ordnerdurchsuchung

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Makro für Ordnerdurchsuchung

Beitrag von Toxitom »

Hey owni,

woran scheiterst du denn? Am Öffnen der Dateien, am Schreiben der Daten? Oder an was?
Das ist eigentlich eine einfache Aufgabe:
Die aktuelle URL liefert dir den aktuellen Verzeichnisnamen.
Dann nutzt du den Service css.ucb.SimpleFileAccess, dort die Methode getFolderContent(). Jetzt hast du in einem Array alle Dateinamen mit Pfad.
Jetzt durchläufst du eine Schleife über alle Array-Elemente und prüfst, ob die Dateiendung "ods" oder "swx" ist und wenn ja und wenn die Datei nicht die derzeit geöffnete Datei ist, dann öffnest du die Datei (am bsten "Hidden"), liest den Wert aus, schliesst die Datei wieder und schreibst den Wert an die gewünschte Position der aktuellen Datei. Und weiter zur nächsten Datei...

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Makro für Ordnerdurchsuchung

Beitrag von Toxitom »

Hey owni,

na ja, viel hast du ja nicht hinbekommen ;-)

Kennst du überhaupt die Grundlagen? Wenn nicht, schau dir mal die IDL an - und dort den Service SimpleFileAccess.

Zum Thema: so:

Code: Alles auswählen

Sub Ordnerdurchsuchung
Dim Test()
Dim oSimpleFileAccess
dim sURL as string
sURL = ConvertToUrl("D:\meineDaten\meinPfad\oderwasauchimmer")
oSimpleFileAccess=createunoservice("com.sun.star.ucb.SimpleFileAccess")
Test() = oSimpleFileAccess.getFolderContent(sUrl, false)
for i = 0 to uBound(test())
  s = s & test(i) & chr(13)
next
msgbox s
End sub
Hoffe, es hilft dir.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro für Ordnerdurchsuchung

Beitrag von komma4 »

siehe den ersten sticky thread im BASIC-Forumsbereich.

IDL interface definition language.

Toxitom meint wahrscheinlich, dass Du Dir den DevelopersGuide inkl. SDK herunterladen solltest, wenn Du Basic programmierst.

Gute Quellen zum Lernen sind die Beispiele auf http://www.ooomacros.org und der Extension Website. Oder auch die "FAQ" bei http://www.dannenhoefer.de - oder die Beispiele auf meiner Site. Für mich ein MUSS: die zwei Dokumente von Andrew Pitonyak zu "Basic" und "Base" (über http://www.pitonyak.org erreichbar)


Deine Fehlermeldung lässt darauf schliessen, dass das SFO nicht richtig erzeugt wurde....
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Makro für Ordnerdurchsuchung

Beitrag von Toxitom »

Hey Owni,

hmm, die Fehlermeldung besagt, dass eben etwas "faul" ist - die Methode heisst exakt:
getFolderContents()
Tia, und ohne "s" funktioniert es halt nicht ;-)
Sorry, ich hatte es nicht detailliert überprüft - alles "on the Fly".

Die IDL kannst du auch direkt im Internet abrufen - das ist sie meist aktuell. Hier der Link:
http://api.openoffice.org/docs/common/r ... le-ix.html

Gruss Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro für Ordnerdurchsuchung

Beitrag von komma4 »

owni hat geschrieben:Öffnen der Dateien! Welche Befehle nimm ich da am besten her
Kommt auf die Datei und den Zweck an, den Du verfolgst
UNO: .loadFromURL
BASIC: LINE INPUT und INPUT
UNO: com.sun.star.ucb.SimpleFileAccess
owni hat geschrieben:und wie kommt man da am besten drauf? =)
Lesen:
F1 OOo Hilfe, OpenOffice.org Basic : Datei-Ein/Ausgabefunktionen
Developer's Guide
Beispiele in Foren
Beispiele in Makrocode veröffentlicher Makros:
* http://www.ooomacros.org
* http://www.dannenhoefer.de
* http://www.pitonyak.org
usw.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten