Differenze tra le versioni di "Dir"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
 
La funzione '''Dir''' restituisce un array stringa contenente i nomi dei file presenti nella cartella puntata aventi le caratteristiche indicate nel secondo parametro. Se non viene specificato tale parametro, verranno restituiti tutti i file presenti nella ''Directory''. E' previsto, inoltre, un terzo parametro, relativo alle costanti previste dalla Classe ''gb'', per poter specificare il tipo di file che dovrà essere restituito. Se tale filtro non viene specificato,  vengono restituiti tutti i file e tutte le cartelle.
 
La funzione '''Dir''' restituisce un array stringa contenente i nomi dei file presenti nella cartella puntata aventi le caratteristiche indicate nel secondo parametro. Se non viene specificato tale parametro, verranno restituiti tutti i file presenti nella ''Directory''. E' previsto, inoltre, un terzo parametro, relativo alle costanti previste dalla Classe ''gb'', per poter specificare il tipo di file che dovrà essere restituito. Se tale filtro non viene specificato,  vengono restituiti tutti i file e tutte le cartelle.
 
  Dir(Directory AS String [ , Pattern AS String , Filter AS Integer ]) AS String[]
 
  Dir(Directory AS String [ , Pattern AS String , Filter AS Integer ]) AS String[]
Poniamo come esempio di avere una cartella, chiamata ''cartella'', nel percorso ''/tmp''. All'interno di questa cartella vi sono tre file con estensione ''.jpg'' e tre file con estensione ''.txt''. Intendiamo individuare soltanto i file aventi estensione ''.jpg''. Possiamo adottare un codice come il seguente:
+
Poniamo come esempio di avere una cartella, chiamata ''cartella'', nel percorso ''/tmp''. All'interno di questa cartella vi sono tre file con estensione ''.jpg'' e tre file con estensione ''.txt'' . Noi vogliamo individuare soltanto i file aventi estensione ''.jpg''.
 
  Public Sub Main()
 
  Public Sub Main()
 
   
 
   
Riga 15: Riga 15:
  
 
==Inserire nel 2° parametro più estensioni di file==
 
==Inserire nel 2° parametro più estensioni di file==
Il 2° parametro della funzione "Dir()" sembrerebbe prevedere l'inserimento di un solo tipo di file, di una sola estensione di file.
+
Per inserire nel 2° parametro ''Pattern'' della funzione "Dir()" due o più estensioni di file, si può usare la stringa "<FONT color=#B22222>[^.]*.{png,jpg,gif}</font>".
<BR>In realtà è possibile far prelevare dalla funzione "Dir()" anche file aventi due o più estensioni diverse, usando la stringa per il parametro ''Pattern'' proposta dalla Wiki del forum tedesco di Gambas: <SUP>&#091;[[#Note|nota 1]]&#093;</sup>
 
 
  Public Sub Main()
 
  Public Sub Main()
 
   
 
   
 
   Dim percorsoDir, nomefile As String
 
   Dim percorsoDir, nomefile As String
 
   
 
   
   percorsoDir = "<FONT color=gray>''/percorso/della/cartella/conenente/i/file''</font>"
+
   percorsoDir = "<FONT color=gray>''/percorso/della/cartella/contenente/i/file''</font>"
 
   
 
   
   For Each nomefile In Dir(percorsoDir, "<FONT color=#B22222>[^0-9P]*.{png,jpg,gif}</font>", gb.File)
+
   For Each nomefile In Dir(percorsoDir, "<FONT color=#B22222>[^.]*.{png,jpg,gif}</font>", gb.File)
 
     Print nomefile
 
     Print nomefile
 
   Next
 
   Next
 
   
 
   
 
  End
 
  End
 
 
 
=Note=
 
[1] Vedere la funzione "Dir()" nella seguente pagina: https://gambas-buch.de/dwen/doku.php?id=k6:k6.3:start
 

Versione delle 13:32, 10 giu 2023

La funzione Dir restituisce un array stringa contenente i nomi dei file presenti nella cartella puntata aventi le caratteristiche indicate nel secondo parametro. Se non viene specificato tale parametro, verranno restituiti tutti i file presenti nella Directory. E' previsto, inoltre, un terzo parametro, relativo alle costanti previste dalla Classe gb, per poter specificare il tipo di file che dovrà essere restituito. Se tale filtro non viene specificato, vengono restituiti tutti i file e tutte le cartelle.

Dir(Directory AS String [ , Pattern AS String , Filter AS Integer ]) AS String[]

Poniamo come esempio di avere una cartella, chiamata cartella, nel percorso /tmp. All'interno di questa cartella vi sono tre file con estensione .jpg e tre file con estensione .txt . Noi vogliamo individuare soltanto i file aventi estensione .jpg.

Public Sub Main()

 Dim s As String

' Raccoglie ogni singolo contenuto presente nel percorso /tmp/cartella/ avente l'estensione ".jpg" e che sia un "file":
 For Each s In Dir("/tmp/cartella", "*.jpg", gb.File)
   Print s
 Next

End


Inserire nel 2° parametro più estensioni di file

Per inserire nel 2° parametro Pattern della funzione "Dir()" due o più estensioni di file, si può usare la stringa "[^.]*.{png,jpg,gif}".

Public Sub Main()

 Dim percorsoDir, nomefile As String

 percorsoDir = "/percorso/della/cartella/contenente/i/file"

 For Each nomefile In Dir(percorsoDir, "[^.]*.{png,jpg,gif}", gb.File)
   Print nomefile
 Next

End