🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!
>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
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
-
Pit Zyclade
- * LO-Experte *
- Beiträge: 3191
- 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 25.8.6.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 SubGruß Helmut
MX-Linux KDE + Linux-Mint Cinnamon
-
Pit Zyclade
- * LO-Experte *
- Beiträge: 3191
- 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 25.8.6.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:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️