🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Anzahl Dateien aus Pfad auslesen

Alles zur Programmierung im LibreOffice.
Antworten
wega
Beiträge: 121
Registriert: Mi 16. Jul 2014, 19:15

Anzahl Dateien aus Pfad auslesen

Beitrag von wega » Mi 16. Jul 2014, 19:21

Hallo zusammen,

ich habe folgenden Code geschrieben, um mir die Anzahl Dateien
innerhalb eines Pfades auszulesen.
Irgendwie komme ich nicht in die Schleife zum Auslesen.
Auch sonstwie scheint der Code zu klemmen.

Code: Alles auswählen

Sub Anzahl
	Dim oPfad as String
	 
	oDoc = ThisComponent
	oForm = oDoc.DrawPage.Forms.GetByIndex(0)
	'MsgBox oForm.Name 'Hier wird der richtige Formularname ausgegeben        
	oFeld = oForm.getbyname("Tfeld1")
	'msgbox oFeld.String 'Hier wird der Inhalt von Tfeld1 ausgegeben
	'msgbox len(oFeld.String) ' Hier wird die Länge des Strings ausgegeben
	oPfad = "/home/buero/Ferienwohnung/Quittung-lesen/" & oFeld.String & "/"
	'msgbox Anhang 'Hier wird der gebastelte Pfad zum Directory ausgegeben
	Anzahl = ShowFiles (oPfad) 'Zählen, wieviel Quittungen schon im Unterordner liegen
	msgbox Anzahl
End Sub


Function ShowFiles (oPfad as String) as Integer
   Dim NextFile As String
   Dim AllFiles As String
  
   AllFiles = ""
   'msgbox sPfad 'Hier wird zur Kontrolle noch einmal der Inhalt von "Anhang" ausgegeben
 
   NextFile = Dir(oPfad, 0)
   'msgbox (NextFile)
   Anzahl = 0

   While NextFile <> ""
   	  Anzahl = Anzahl + 1
      AllFiles = AllFiles & Chr(13) &  NextFile 
      NextFile  = Dir
   Wend
 
   ShowFiles = Anzahl
   'MsgBox AllFiles
   'msgbox ShowFiles
End function
Ich freue mich, wenn mir geholfen werden kann.

Mit Gruß
Werner

pstoelzg
Beiträge: 9
Registriert: Fr 8. Aug 2014, 10:38

Re: Anzahl Dateien aus Pfad auslesen

Beitrag von pstoelzg » So 10. Aug 2014, 16:33

Hallo wega,

hier die Links zu hilfreichen Befehlsreferenzen
https://help.libreoffice.org/3.3/Basic/ ... on_Runtime
https://help.libreoffice.org/Basic/Managing_Files
https://help.libreoffice.org/Basic/File_I_O_Functions

---

Und hier folgt Code, mit dessen Hilfe Dein Problem evtl. gelöst werden könnte:

Code: Alles auswählen

Option Explicit

REM ============================================================================
REM Displays all subdirectories in a specified root directory
REM ============================================================================

Sub showListOfDirNames
	' Variables
	Dim sDirNames As String
	Dim sPath As String
	Dim sValue As String
	
	sDirNames = "Directories:"
	sPath = CurDir
	sValue = Dir$(sPath + getPathSeparator + "*", 16)
	
	Do
		' Exclude "." and ".." from evaluation
		If (sValue <> ".") And (sValue <> "..") Then
			' Get names of directories
			If (GetAttr(sPath + getPathSeparator + sValue) AND 16) > 0 Then
				' Assemble list of directory names
				sDirNames = sDirNames & Chr(13) & sValue
			End If
		End If
		sValue = Dir$
	Loop Until sValue = ""
	
	' Show list of directories
	MsgBox sDirNames, 0, sPath
End Sub



REM ============================================================================
REM Display all files contained by a specified directory
REM ============================================================================

Sub showListOfFileNames
	' Variables
	Dim iNoOfFiles As Integer
	Dim sFileNames As String
	Dim sMsg As String
	Dim sPath As String
	Dim sValue As String
	
	' Initialize variables
	iNoOfFiles = 0
	sFileNames = ""
	sPath = CurDir + getPathSeparator + "Downloads"
	sValue = Dir$(sPath + getPathSeparator + "*", 0)
	
	Do
		' Get names of files
		If (GetAttr(sPath + getPathSeparator + sValue) AND 16) = 0 Then
			' Assemble list of file names
			sFileNames = sFileNames & "* " & sValue & Chr(13)
			' Increment 'number of files'
			iNoOfFiles = iNoOfFiles + 1
		End If
		sValue = Dir$
	Loop Until sValue = ""
	
	' Assemble message
	sMsg = "INFO" & Chr(13) & _
		    Chr(13) & _
		   "File names reads as follows:" & Chr(13) & _
		    sFileNames & _
		    Chr(13) & _
		   "Number of files = " & Str(iNoOfFiles)
	' Show message
	MsgBox sMsg, 0, sPath
End Sub



REM ============================================================================
REM Main
REM ============================================================================

Sub Main
	' Display all files contained by a specified directory
	showListOfFileNames
	
	' Displays all subdirectories in a specified root directory
	showListOfDirNames
End Sub


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.



Antworten