Bestandsnamen in map uitlezen

Bespreek het rekenblad

Bestandsnamen in map uitlezen

Berichtdoor Atwist » wo sep 16, 2015 5:51 pm

Bestaat er een mogelijkheid om bestandsnamen in een bepaalde map uit te lezen??

Zo ja met welke macro opdracht kan ik dit het beste maken.

Dus ik wil in mijn PDF map kijken welke pdf er in die map staat zodat er een lijst wordt gemaakt deze op het werkblad komen te staan zodat ik dan de lijst kan uitprinten.

Ik hoop dat ik het duidelijk heb uitgelegd anders hoor ik het wel
Andreas

LibreOffice 4.4.7.2. op Linux Mint en zeker geen Versie 5 meer.
Atwist
 
Berichten: 52
Geregistreerd: ma sep 14, 2015 8:56 am

Re: Bestandsnamen in map uitlezen

Berichtdoor eremmel » wo sep 16, 2015 6:58 pm

Als dit niet zo heel vaak hoeft te gebeuren zou je ook kunnen doen:

Start:
cmd.exe
met het commando CD naar de juiste map gaan:
CD C:\Users\naam\......
Lijstje genereren:
DIR /B *.pdf >bestandslijst.csv
Bestandje openen in Writer of Calc

Macro's zijn echt complex, advies is niet aan beginnen.
W10: LO 7.0.0.3 (x64)
Het is Microsoft marketing die laat geloven dat computers geschikt zijn voor niet technici
eremmel
 
Berichten: 642
Geregistreerd: di sep 01, 2009 10:11 am
Woonplaats: Barneveld, Nederland

Re: Bestandsnamen in map uitlezen

Berichtdoor Atwist » wo sep 16, 2015 7:07 pm

Ik had net deze Excel macro gevonden, nu nog omzetten naar OOo vba.

Code: Selecteer alles   UitklappenInklappen
Sub GetFiles()
    Dim fileList() As String
    Dim fName As String
    Dim I As Integer, X As Integer
    fName = Dir("D:\Mijn Documenten\mijn map\" & "*.pdf")
    While fName <> ""
        I = I + 1
        ReDim Preserve fileList(1 To I)
        fileList(I) = fName
         fName = Dir()
    Wend
    If I = 0 Then
        MsgBox "Geen bestanden gevonden"
        Exit Sub
    Else
        Columns(1).ClearContents
        For X = 1 To I
            Cells(X, 1) = fileList(X)
        Next
    End If
End Sub
Andreas

LibreOffice 4.4.7.2. op Linux Mint en zeker geen Versie 5 meer.
Atwist
 
Berichten: 52
Geregistreerd: ma sep 14, 2015 8:56 am

Re: Bestandsnamen in map uitlezen

Berichtdoor RPG » wo sep 16, 2015 7:54 pm

Hallo

Misschien dat dit je helpt.

Romke
LibreOffice 6.4.4.2.0 op openSUSE Leap 15.1
RPG
 
Berichten: 4215
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Bestandsnamen in map uitlezen

Berichtdoor Atwist » vr sep 18, 2015 8:31 am

Hallo Romke,

Dank voor de tip, heb daar wel veel moeten zoek maar dit heb ik gevonden.

Code: Selecteer alles   UitklappenInklappen
    Sub ListSubDirectoriesOrFiles
    Dim url,iAns,a,DorF,oDoc,oSheet,Dname,Col,Row
    oDoc = ThisComponent
    oSheet = oDoc.Sheets(0) 'Sheet1
    url = getFolder("List folder content",)
    a = "List the names of what?" & Chr(13) & "Yes = sub-directories" & Chr(13) & "No = files"
    iAns = MsgBox(a,4,"List what?")
    If iAns = 7 then
       DorF = 0
    Else DorF = 16
    EndIf
    ext = "*"
    If DorF = 0 then
       ext1 = InputBox("Enter the desired file type extention. Examples: odt for Writer files or * for all files."
          If ext1 = "" then MsgBox("Cancel pressed. Quitting.") : End
       ext = ext & "." & ext1
    EndIf
    InitialCell:
    Cname = InputBox("Enter the name of the cell that should recieve the initial name, e.g., A2.","Start list where?")
    If Cname = "" then MsgBox("No entry made. Quitting.") : End
    On Error goto E1
    oCell = oSheet.getCellRangeByName(Cname)
    a = "List should go in what direction?" & Chr(13) & "Yes = down" & Chr(13) & "No = across"
    iAns = MsgBox(a,4,"List down or across?")
    If iAns = 7 then
       DA = "A"
    Else DA = "D"
    EndIf   
    url = url & "/" & ext
    Col = oCell.CellAddress.Column
    Row = oCell.CellAddress.Row
    Dname = Dir(url,DorF)
    Do While Dname <> ""
       If Dname <> "." And Dname <> ".." then
          oCell = oSheet.GetCellByPosition(Col,Row)
          oCell.String = Dname
          If DA = "D" then
             Row = Row + 1
          Else Col = Col +1
          EndIf
       EndIf
       Dname = Dir
    Loop
    MsgBox "Done"
    End
    E1:
    MsgBox "'" & Cname & "' is an illegal cell name. Try again." : Goto InitialCell
    End Sub

    Function getFolder(sTitle AS String, optional sInitDir) AS String
       oPicker = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
       oPicker.setTitle(sTitle)
       if not ismissing(sInitDir) then oPicker.setDisplayDirectory(sInitDir)
       if oPicker.execute() then getFolder = oPicker.getDirectory()
    End Function


Alleen het "across" werkt goed maar het "down" niet, dit ga ik proberen te vinden.

Tip zijn natuurlijk altijd welkom. :super:
Andreas

LibreOffice 4.4.7.2. op Linux Mint en zeker geen Versie 5 meer.
Atwist
 
Berichten: 52
Geregistreerd: ma sep 14, 2015 8:56 am

Re: Bestandsnamen in map uitlezen

Berichtdoor RPG » vr sep 18, 2015 9:06 am

Hallo

Het is niet aan mij om iets negatiefs te zeggen over de door jouw gevonden code. Wel weet ik dat het verstandig is om zo kort mogelijk bij de API te blijven wanneer je wilt programmeren. Dat betekent dat je moet gaan studeren in de boeken die je vast daar ook wel gevonden hebt.

In de zoek actie stond Filepicker centraal dat is de service die gaat over wat je wilt. Wanneer je niet gebruik wilt maken van de mogelijkheden van de API en alles wat OpenOffice biedt dan is het misschien verstandig om een ander programma te gebruiken dan OOo. Ik ben niet jouw debugger

Romke
LibreOffice 6.4.4.2.0 op openSUSE Leap 15.1
RPG
 
Berichten: 4215
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Bestandsnamen in map uitlezen

Berichtdoor Atwist » vr sep 18, 2015 9:16 am

Ik geloof dat wij elkaar steeds verkeerd begrijpen :crazy:

Ik ben niet jouw debugger


Jij hoeft ook niet mijn debugger te zijn.

Er staat duidelijk
Alleen het "across" werkt goed maar het "down" niet, dit ga ik proberen te vinden.


Verder even goede vrienden hoor. :super:
Andreas

LibreOffice 4.4.7.2. op Linux Mint en zeker geen Versie 5 meer.
Atwist
 
Berichten: 52
Geregistreerd: ma sep 14, 2015 8:56 am

Re: Bestandsnamen in map uitlezen

Berichtdoor RPG » vr sep 18, 2015 9:48 am

Hallo

Voor anderen is het misschien wel goed te weten waar de code vandaan komt. Ik denk dat dit de link is.

Aan het eind geeft Villeroy een voorbeeld met uitleg. Ik heb het niet geprobeerd. Maar voorbeelden en uitleg van Villeroy zijn in het algemeen het beste wat je kunt krijgen.

Romke
LibreOffice 6.4.4.2.0 op openSUSE Leap 15.1
RPG
 
Berichten: 4215
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Bestandsnamen in map uitlezen

Berichtdoor Atwist » vr sep 18, 2015 10:14 am

Inderdaad dat is het.

Had inderdaad de link er wel bij kunnen zetten.
Andreas

LibreOffice 4.4.7.2. op Linux Mint en zeker geen Versie 5 meer.
Atwist
 
Berichten: 52
Geregistreerd: ma sep 14, 2015 8:56 am


Keer terug naar Calc

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron