❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Ordnerverzeichnis in Calc einlesen
Ordnerverzeichnis in Calc einlesen
Hallo,
kann ich Ordnerverzeichnisse auslesen und die Dateinamen in Calc einfügen?
Ich würde gerne eine Tabelle mit meiner mp3-Sammlung anlegen.
kann ich Ordnerverzeichnisse auslesen und die Dateinamen in Calc einfügen?
Ich würde gerne eine Tabelle mit meiner mp3-Sammlung anlegen.
Franz
Re: Ordnerverzeichnis in Calc einlesen
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit
-
- * LO-Experte *
- Beiträge: 3060
- Registriert: Mo 12. Nov 2012, 16:59
Re: Ordnerverzeichnis in Calc einlesen
Interessante Quelle! Muß man wohl unter Makros einfügen.
Leider gibt es außer einem nebulösen Hinweis, dass z =0 zu setzen sei (wann? im Makro oder bei der Anwendung oder?), keine Anleitung für die Nutzung.
So ist es für mich (gut, ich bin kein Maßstab, alle anderen mögen klüger sein) nicht nutzbar, obwohl der Verfasser sich große Mühe für "alle" gegeben hat.
Leider gibt es außer einem nebulösen Hinweis, dass z =0 zu setzen sei (wann? im Makro oder bei der Anwendung oder?), keine Anleitung für die Nutzung.
So ist es für mich (gut, ich bin kein Maßstab, alle anderen mögen klüger sein) nicht nutzbar, obwohl der Verfasser sich große Mühe für "alle" gegeben hat.
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Ordnerverzeichnis in Calc einlesen
Ich bin auch kein Maßstab, weil ich mit dem ähnlichen VBA (Excel) unterwegs bin.
Dennoch ein paar Anmerkungen:
Die Function gibt einen Integer zurück, also eine Zahl!
Heißt, sie zählt Dateien und listet sie nicht auf, wie vom TE gewünscht.
Wenn der Übergabeparameter z korrekt als Integer (oder auch Long) deklariert wäre, bräuchte man ihn nicht erst zu setzen, sondern ein "leerer" Integer ist ohnehin 0.
Unter VBA würde man diesen Parameter gar nicht erst übergeben (für was soll das gut sein?) , sondern innerhalb der Function dimensionieren.
Zum eigentlichen Thema:
Unter Windows (Excel) geht so etwas mit dem "Scripting.FileSystemObject"
Für LibreOffice habe ich folgendes gefunden:
viewtopic.php?t=16361
Gruß Ralf
Dennoch ein paar Anmerkungen:
Die Function gibt einen Integer zurück, also eine Zahl!
Heißt, sie zählt Dateien und listet sie nicht auf, wie vom TE gewünscht.
Wenn der Übergabeparameter z korrekt als Integer (oder auch Long) deklariert wäre, bräuchte man ihn nicht erst zu setzen, sondern ein "leerer" Integer ist ohnehin 0.
Unter VBA würde man diesen Parameter gar nicht erst übergeben (für was soll das gut sein?) , sondern innerhalb der Function dimensionieren.
Zum eigentlichen Thema:
Unter Windows (Excel) geht so etwas mit dem "Scripting.FileSystemObject"
Für LibreOffice habe ich folgendes gefunden:
viewtopic.php?t=16361
Gruß Ralf
Ein Feedback auf eine gegebene Lösung tut nicht weh und zeigt Querlesern, dass das Problem gelöst ist.
Re: Ordnerverzeichnis in Calc einlesen
Besten Dank für die schnellen Antworten. Ich werde versuchen es richtig anzuwenden.
Nochmals Dankeschön.
Nochmals Dankeschön.
Franz
Re: Ordnerverzeichnis in Calc einlesen
Hallo Pit, hallo Ralf,
da ich nichts über die Vorkenntnisse des TE Franz weiss, habe ich erstmal nur den Link gesetzt. Er kann ja nachfragen.
Ich nutze für ähnlich gelagerte Fälle ein Mini-Script im jeweiligen Verzeichnis, das mir die Dateinamen in eine Text/CSV Datei schreibt und importiere diese dann nach Calc. Ist aber eben keine Lösung IN Office.
Das Marco bekommt 3 Parameter übergeben,
eine leere Liste, den Parameter z der die bisherige Anzahl von Elementen der Liste zählt und den Namen des Verzeichnisses.
Es lässt sich vom System die Liste der enthaltenen Dateinamen geben und durchläuft diese mit eine FOR-Schleife.
Dateinamen werden in die Übergebene Liste eingetragen und z erhöht.
Unterverzeichnisse werden per Rekursion (Selbstaufruf) gescannt.
Als Rückgabewert der Funktion dient der Endwert von z, also die Anzahl der Dateien, die eingetragen wurden.
"Nebenbei" wurde aber auch die übergebene Liste gefüllt und enthält jetzt z Dateinamen (Anhänger Funktionaler Sprachen sind in BASIC falsch, in Lisp würde man natürlich die Liste zurückgeben, aber "früher" waren komplexe Rückgabewerte nicht möglich)
Abgesehen vom OO-Service, der die Dateien liefert sollte das auch unter VBA gehen
Mfg, Jörn
da ich nichts über die Vorkenntnisse des TE Franz weiss, habe ich erstmal nur den Link gesetzt. Er kann ja nachfragen.
Ich nutze für ähnlich gelagerte Fälle ein Mini-Script im jeweiligen Verzeichnis, das mir die Dateinamen in eine Text/CSV Datei schreibt und importiere diese dann nach Calc. Ist aber eben keine Lösung IN Office.
Das Marco bekommt 3 Parameter übergeben,
eine leere Liste, den Parameter z der die bisherige Anzahl von Elementen der Liste zählt und den Namen des Verzeichnisses.
Es lässt sich vom System die Liste der enthaltenen Dateinamen geben und durchläuft diese mit eine FOR-Schleife.
Dateinamen werden in die Übergebene Liste eingetragen und z erhöht.
Unterverzeichnisse werden per Rekursion (Selbstaufruf) gescannt.
Als Rückgabewert der Funktion dient der Endwert von z, also die Anzahl der Dateien, die eingetragen wurden.
"Nebenbei" wurde aber auch die übergebene Liste gefüllt und enthält jetzt z Dateinamen (Anhänger Funktionaler Sprachen sind in BASIC falsch, in Lisp würde man natürlich die Liste zurückgeben, aber "früher" waren komplexe Rückgabewerte nicht möglich)
Abgesehen vom OO-Service, der die Dateien liefert sollte das auch unter VBA gehen
Mfg, Jörn
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit
Re: Ordnerverzeichnis in Calc einlesen
Hallo Franz10, ich habe etwas gegockelt und ein Makro in einem Thread aus dem Jahr 2007 gefunden. Verfasst hat das Makro LO-Guru und Autor einiger lesenswerter Bücher über LO, Toxitom.
Hier der Link zu der Seite:
http://de.openoffice.info/viewtopic.php?t=11212
Habe dir das Makro mit einem Kommentar zum leichteren Verständnis versehen. Den Pfad zu deinem Musikstücke-Ordner musst du natürlich anpassen. Hier zu deiner Bequemlichkeit der Basic Code:
Für evtl. weitere Anpassungen hoffe ich, dass sich die kompetenteren User wie HeritzP, F3K oder andere melden.
Gruß Helmut
Hier der Link zu der Seite:
http://de.openoffice.info/viewtopic.php?t=11212
Habe dir das Makro mit einem Kommentar zum leichteren Verständnis versehen. Den Pfad zu deinem Musikstücke-Ordner musst du natürlich anpassen. Hier zu deiner Bequemlichkeit der Basic Code:
Code: Alles auswählen
REM ***** BASIC *****
REM listet alle Dateien eines Verezeichnisses in einem
REM Calc-Sheet auf
Sub Dateien_auflisten
dim sPfad as string
dim oSheet as Object
dim iSp as integer, iZe as Long
oSheet = thisComponent.sheets.getByName("Tabelle1")
iSp = 0 : iZe = 4 'Startzele der Auflistung A5
sPfad = ConvertToUrL("/home/helmut/Musik/*.mp3")'der Pfad zum gewünschten Ordner in Linux- oder Mac-Schreibweise
' kann man auch in Windows Schreibweise eingeben, da die Funktion
' ConverToUrl() den Pfad nach dem verwendeten umwandelt (nicht getestet!)
' für mp3 Dateien muss die Dateiendung entsprechend angepasst werden /*.mp3
nextFile = dir(sPfad, 0) 'die erste Datei
Do while nextFile <> ""
oSheet.getCellByPosition(iSp, iZe).string = nextFile
iZe = iZe + 1
nextFile = Dir
loop
End Sub
Gruß Helmut
MX-Linux KDE + Linux-Mint Cinnamon
-
- * LO-Experte *
- Beiträge: 3060
- Registriert: Mo 12. Nov 2012, 16:59
Re: Ordnerverzeichnis in Calc einlesen
Das klappt zwar (entsprechend dem ursprünglichen Wunsch), aber windows-Nutzer würden da die diversen Optionen von dir bevorzugen.
Denn wenn man nur die Dateien erhält und die Unterverzeichnisse links liegen lassen muß, bin ich selbst nicht von der Nützlichkeit zu überzeugen.
Wünschenswert wäre entweder in calc oder in base die vollständige Listung.
In calc beispielsweise jedes Unterverzeichnis in eine weitere Spalte oder gar Tabelle, wobei Spalte vermutlich für ein nachfolgende Überführung nach base zweckmäßiger wäre, weil man dann nur eine Tabelle überführen muß.
Denn wenn man nur die Dateien erhält und die Unterverzeichnisse links liegen lassen muß, bin ich selbst nicht von der Nützlichkeit zu überzeugen.
Wünschenswert wäre entweder in calc oder in base die vollständige Listung.
In calc beispielsweise jedes Unterverzeichnis in eine weitere Spalte oder gar Tabelle, wobei Spalte vermutlich für ein nachfolgende Überführung nach base zweckmäßiger wäre, weil man dann nur eine Tabelle überführen muß.
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Ordnerverzeichnis in Calc einlesen
Habe das mit einer Ein-Zeilen-Batch-Datei in Windows(*.bat) gelöst.
Untenstehend 2 Versionen; kopiere diese in das gewünschte Verzeichnis und rufe die *bat auf;
jede dieser Bat generiert eine Textdatei, welche die Ordner-/Unterordner-Inhalte beinhaltet.
Per 'Copy & Paste' ins Calc oder Writer Dokument einfügen
Batch 1: dir /a / s /o:gn /b > "_druck.txt"
Batch 2: dir /a / s /o:gn > "_druck2.txt"
Kopiere die jeweilige Zeile per Texteditior in eine *.bat Datei
Untenstehend 2 Versionen; kopiere diese in das gewünschte Verzeichnis und rufe die *bat auf;
jede dieser Bat generiert eine Textdatei, welche die Ordner-/Unterordner-Inhalte beinhaltet.
Per 'Copy & Paste' ins Calc oder Writer Dokument einfügen
Batch 1: dir /a / s /o:gn /b > "_druck.txt"
Batch 2: dir /a / s /o:gn > "_druck2.txt"
Kopiere die jeweilige Zeile per Texteditior in eine *.bat Datei
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.