Ordner zählen und Plus 1 ausgeben

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Inopel
**
Beiträge: 33
Registriert: Sa, 25.03.2006 18:36

Ordner zählen und Plus 1 ausgeben

Beitrag von Inopel »

Abend Gemeinde,
möchte gerne das Calc mir mit einem Makro die Anzahl der Ordner in einem bestimmten Ordner anzeigt.
über die SuFu finde ich nicht passendes als außer dies hier:

Code: Alles auswählen

sub DateienZaehlen
        dim liste(10000) as string
        m=getdirs(liste(),0,"D:\bbb\aaa")
           For i=0 to m-1
           next i
          oDoc = ThisComponent
oSheet = oDoc.sheets(0)
oZelle = oSheet.getCellbyPosition(14,O)
oZelle.Value = m + 1
        end sub



        function getdirs( liste(),z, folder) as integer
           sFolderUrl = ConvertToUrl( Folder )
           oSimpleFileAccess = createUnoService( "com.sun.star.ucb.SimpleFileAccess" )
           aFolders = oSimpleFileAccess.getFolderContents( sFolderUrl,true )
           For i = LBound( aFolders ) To UBound( aFolders )
             sFile = aFolders( i )
             If oSimpleFileAccess.isFolder( sFile ) Then
             getdirs( liste(),z, sFile)   
              Else
                liste(z)=sfile
                z=z+1
             end if   
           next i       
           getdirs=z
        end function

Leider zeigt mir dieses ja die gesamten Dateien an die in dem Ordner plus Unterordnern liegt.
Könnt ihr mir helfen und das mal richtig stellen?
Mit allerbesten Dank

Marko


Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst; nicht zum Thema gehörende Frage abgetrennt
Windows 7 Pro / 64bit
Apache OpenOffice™ 4.0.1
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: Ordner zählen und Plus 1 ausgeben

Beitrag von F3K Total »

Hi,
Kopiere diese function in die Standard Bibliothek:

Code: Alles auswählen

function Count_Folder (sUrl) as integer
    sFolderUrl = ConvertToUrl(sURL)
    oSimpleFileAccess = createUnoService("com.sun.star.ucb.SimpleFileAccess")
    aFolders = oSimpleFileAccess.getFolderContents(sFolderUrl,true)
    counter = 0
    For i = LBound(aFolders) To UBound(aFolders)
        sFile = aFolders( i )
        If oSimpleFileAccess.isFolder(sFile) Then
            counter = counter + 1
        end if   
    next i
    Count_Folder = counter      
end function
Wenn Du nun in Zelle A1 deinen zu durchsuchenden Ordner, sagen wir mal

Code: Alles auswählen

D:\bbb\aaa
schreibst, und in Zelle B1 diese Formel:

Code: Alles auswählen

=Count_Folder (A1)
dann, oh Wunder, erscheint in Zelle B1 die Anzahl der Ordner im zu durchsuchenden Ordner aus A1.
Gruß R
Inopel
**
Beiträge: 33
Registriert: Sa, 25.03.2006 18:36

Re: Ordner zählen und Plus 1 ausgeben

Beitrag von Inopel »

Besten Dank auch für die schnelle Antwort und sehr gute Antwort.
nur muss ich jedesmal "=Count_Folder (A1)" eintippen. kann ich das über ein makro selbständig schreiben lassen?

Nachtrag: Gehört hier zwar nicht rein, weiß ich [gelöscht ,4]

Moderation,4: Dann mache das auch nicht! Nicht zum Thema gehörende Frage als separater Thread abgetrennt
Windows 7 Pro / 64bit
Apache OpenOffice™ 4.0.1
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: Ordner zählen und Plus 1 ausgeben

Beitrag von F3K Total »

Hi,
angenommen du hast in Spalte A Deine Verzeichnisse beginnend bei A2, dann schreibe in B2 die Formel

Code: Alles auswählen

=COUNT_FOLDER(A2)
. Klicke den grünen Haken an. Ziehe die Formel mit der Maus am kleinen schwarzen Quadrat der Zellumrandung von B2 soweit nach unten, wie in Spalte A Verzeichnisse stehen.
Gruß R
Inopel
**
Beiträge: 33
Registriert: Sa, 25.03.2006 18:36

Re: Ordner zählen und Plus 1 ausgeben

Beitrag von Inopel »

besten dank, hat mir sehr weitergeholfen
Windows 7 Pro / 64bit
Apache OpenOffice™ 4.0.1
Antworten