Difference between revisions of "IT/Documentation/BASIC Guide/Files and Directories (Runtime Library)"

From Apache OpenOffice Wiki
Jump to: navigation, search
Line 9: Line 9:
 
   
 
   
 
L'utilizzo dei file rappresenta una delle  attività di base di un'applicazione. L'API di {{OOo}} fornisce un'intera gamma di oggetti con cui potete creare, aprire e modificare i
 
L'utilizzo dei file rappresenta una delle  attività di base di un'applicazione. L'API di {{OOo}} fornisce un'intera gamma di oggetti con cui potete creare, aprire e modificare i
documenti Office. Questi oggetti sono presentati nel capitolo [[IT/Documentation/BASIC Guide/API Intro|Introduzione all'API di {{OOo}}]]. In ogni caso, talvolta occorre accedere direttamente al file system, eseguire ricerche nelle directory o modificare i file di testo. La libreria runtime di {{OOo}} Basic mette a vostra disposizione numerose funzioni fondamentali per queste attività.
+
documenti Office. Questi oggetti sono presentati nel capitolo [[Documentation/BASIC Guide/API Intro|Introduzione all'API di {{OOo}}]]. In ogni caso, talvolta occorre accedere direttamente al file system, eseguire ricerche nelle directory o modificare i file di testo. La libreria runtime di {{OOo}} Basic mette a vostra disposizione numerose funzioni fondamentali per queste attività.
  
 
{{Documentation/Note|Alcune funzioni di file e directory specifiche DOS non sono più incluse in {{OOo}} o la loro funzionalità è limitata. Ad esempio, non è contemplato il supporto delle funzioni <tt>ChDir</tt>, <tt>ChDrive</tt> e <tt>CurDir</tt>. Alcune proprietà specifiche del DOS non sono più utilizzate nelle funzioni che prevedono proprietà dei file come parametri (ad esempio, per differenziare tra file nascosti e file di sistema). Questa modifica si è resa necessaria per garantire il massimo livello possibile di indipendenza dalla piattaforma per {{OOo}}.}}
 
{{Documentation/Note|Alcune funzioni di file e directory specifiche DOS non sono più incluse in {{OOo}} o la loro funzionalità è limitata. Ad esempio, non è contemplato il supporto delle funzioni <tt>ChDir</tt>, <tt>ChDrive</tt> e <tt>CurDir</tt>. Alcune proprietà specifiche del DOS non sono più utilizzate nelle funzioni che prevedono proprietà dei file come parametri (ad esempio, per differenziare tra file nascosti e file di sistema). Questa modifica si è resa necessaria per garantire il massimo livello possibile di indipendenza dalla piattaforma per {{OOo}}.}}

Revision as of 03:25, 7 July 2009

L'utilizzo dei file rappresenta una delle attività di base di un'applicazione. L'API di Apache OpenOffice fornisce un'intera gamma di oggetti con cui potete creare, aprire e modificare i documenti Office. Questi oggetti sono presentati nel capitolo Introduzione all'API di Apache OpenOffice. In ogni caso, talvolta occorre accedere direttamente al file system, eseguire ricerche nelle directory o modificare i file di testo. La libreria runtime di Apache OpenOffice Basic mette a vostra disposizione numerose funzioni fondamentali per queste attività.

Template:Documentation/Note

Amministrazione dei file

Ricerca nelle directory

La funzione Dir in Apache OpenOffice Basic esegue la ricerca di file e sottodirectory nelle directory. Alla prima richiesta, deve essere assegnata a Dir come suo primo parametro una stringa contenente il percorso delle directory in cui eseguire la ricerca. Il secondo parametro di Dir specifica il file o la directory da cercare. Apache OpenOffice Basic restituisce il nome della prima voce di directory individuata. Per richiamare la voce successiva, la funzione Dir dovrebbe essere richiesta senza parametri. Se la funzione Dir non individua più voci, restituisce una stringa vuota.

L'esempio seguente mostra come utilizzare la funzione Dir per richiedere tutti i file situati in una directory. La procedura salva i singoli nomi di file nella variabile AllFiles e quindi la visualizza in una finestra di messaggio.

Sub ShowFiles
  Dim NextFile As String
  Dim AllFiles As String
 
  AllFiles = ""
  NextFile = Dir("C:\", 0)
 
  While NextFile  <> ""
    AllFiles = AllFiles & Chr(13) &  NextFile 
    NextFile = Dir
  Wend
 
  MsgBox AllFiles
End Sub

Lo 0 (zero) utilizzato come secondo parametro nella funzione Dir assicura che Dir restituisca solo i nomi dei file e che le directory siano ignorate. I parametri seguenti possono essere specificati qui:

  • 0 :Restituisce i file normali
  • 16 :Sottodirectory

L'esempio seguente è praticamente identico a quello precedente, ma la funzione Dir trasferisce il valore 16 come parametro, che restituisce le sottodirectory di una cartella anziché i nomi dei file.

Sub ShowDirs
  Dim NextDir As String
  Dim AllDirs As String
 
  AllDirs = ""
  NextDir = Dir("C:\", 16)
 
  While NextDir <> ""
    AllDirs = AllDirs & Chr(13) &  NextDir
    NextDir  <nowiki>= Dir</nowiki>
  Wend
 
  MsgBox AllDirs
End Sub

Template:Documentation/Note

Template:Documentation/Note

Template:Documentation/Note

Creazione ed eliminazione di directory

Apache OpenOffice Basic dispone della funzione MkDir per la creazione di directory.

MkDir ("C:\SubDir1")

Questa funzione consente di creare directory e sottodirectory. Se richiesto, si possono creare anche tutte le directory necessarie all'interno di una gerarchia. Ad esempio, se esiste solo la directory C:\SubDir1, la chiamata

MkDir ("C:\SubDir1\SubDir2\SubDir3\")

crea sia la directory C:\SubDir1\SubDir2 che la directory C:\SubDir1\SubDir2\SubDir3.

La funzione RmDir consente di eliminare le directory.

RmDir ("C:\SubDir1\SubDir2\SubDir3\")

Qualora la directory contenga sottodirectory o file, verranno eliminati anch'essi. Si consiglia pertanto di utilizzare RmDir con cautela.

Template:Documentation/Note

Template:Documentation/Note

Copia, ridenominazione, eliminazione e controllo dell'esistenza dei file

La chiamata seguente crea una copia del file Source sotto il nome di Destination:

FileCopy(Source, Destination)

Con l'ausilio della seguente funzione è possibile rinominare il file OldName in NewName. La sintassi della parola chiave As e il fatto che non è utilizzata una virgola risalgono alle radici del linguaggio Basic.

Name OldName As NewName

La chiamata seguente elimina il file Filename. Per eliminare le directory (e i relativi file) avvalersi della funzione RmDir.

Kill(Filename)

La funzione FileExists può essere utilizzata per controllare se esiste un file:

If FileExists(Filename) Then 
  MsgBox "file exists."
End If

Lettura e modifica delle proprietà dei file

Quando si lavora con i file, è talvolta importante essere in grado di stabilire le proprietà dei file, l'ora dell'ultima modifica del file e la sua lunghezza.

La chiamata seguente restituisce alcune proprietà su un file.

Dim Attr As Integer
Attr = GetAttr(Filename)

Il valore restituito è fornito come maschera di bit in cui sono possibili i valori seguenti:

  • 1 : file di sola lettura
  • 16 : nome di una directory

L'esempio seguente determina la maschera di bit del file test.txt e controlla se è di sola lettura e se si tratta di una directory. Se nessuna delle due è applicabile, a FileDescription è assegnata la stringa "normale".

Dim FileMask As Integer
Dim FileDescription As String
 
FileMask = GetAttr("test.txt")
 
If (FileMask AND 1) > 0 Then
  FileDescription = FileDescription & " read-only "
End IF
 
If (FileMask AND 16) > 0 Then
  FileDescription = FileDescription & " directory "
End IF
 
If FileDescription = "" Then
  FileDescription = " normal "
End IF
 
MsgBox FileDescription

Template:Documentation/Note

La funzione SetAttr consente di modificare le proprietà di un file. La chiamata seguente

SetAttr("test.txt", 1)

Per eliminare uno stato di sola lettura preesistente, avvalersi della chiamata seguente:

SetAttr("test.txt", 0)

La data e l'ora dell'ultima modifica operata su un file sono fornite dalla funzione FileDateTime. Qui la data è formattata in conformità alle impostazioni specifiche del paese utilizzate sul sistema.

FileDateTime("test.txt")   ' Provides date and time of the last file amendment.

La funzione FileLen determina la lunghezza di un file in byte (come numero intero lungo).

FileLen("test.txt")      ' Provides the length of the file in bytes

Scrittura e lettura di file di testo

Apache OpenOffice Basic mette a disposizione una gamma completa di metodi di lettura e scrittura dei file. Le informazioni riportate di seguito sono relative alle operazioni con i file di testo (non i documenti di testo).

Scrittura di file di testo

Per accedere a un file di testo occorre aprirlo. Per eseguire questa operazione, è necessario un descrittore di file libero, che identifichi chiaramente il file per il successivo accesso.

Per creare un descrittore di file libero, avvalersi della funzione FreeFile. Il descrittore di file è utilizzato come parametro per l'istruzioneOpen che apre il file. Per aprire un file in modo da specificarlo come file di testo, usare la chiamata Open seguente:

Open Filename For Output As #FileNo

Filename è una stringa contenente il nome del file. FileNo è il descrittore creato dalla funzione FreeFile.

Una volta aperto il file, l'istruzione Print può essere descritta riga per riga:

Print #FileNo, "This is a test line."

FileNo rappresenta anche qui il descrittore di file. Il secondo parametro specifica il testo da salvare come riga del file di testo.

Una volta completato il processo di scrittura, il file deve essere chiuso utilizzando una chiamata Close:

Close #FileNo

Anche qui dovrete specificare il gestore di file.

L'esempio seguente mostra come aprire, descrivere e chiudere un file di testo:

Dim FileNo As Integer
Dim CurrentLine As String
Dim Filename As String
 
Filename = "c:\data.txt"            ' Define file name 
FileNo = Freefile               ' Establish free file handle
 
Open Filename For Output As #FileNo         ' Open file (writing mode)
Print #FileNo, "This is a line of text"      ' Save line 
Print #FileNo, "This is another line of text"   ' Save line 
Close #FileNo                  ' Close file

Lettura di file di testo

La lettura dei file di testo avviene secondo le stesse modalità della scrittura. L'istruzione Open utilizzata per aprire il file contiene l'espressione For Input in luogo dell'espressione For Output. Per leggere i dati è opportuno utilizzare l'istruzione Line Input anziché il comando Print di scrittura dei dati.

Infine, quando si richiama un file di testo, viene impiegata l'istruzione eof per controllare se è stata raggiunta la fine del file:

eof(FileNo)

L'esempio seguente illustra come eseguire la lettura di un file di testo:

Dim FileNo As Integer
Dim CurrentLine As String
Dim File As String
Dim Msg as String
 
' Define filename 
Filename = "c:\data.txt"
 
' Establish free file handle
FileNo = Freefile
 
' Open file (reading mode)
Open Filename For Input As FileNo
 
' Check whether file end has been reached
Do While not eof(FileNo)
  ' Read line 
  Line Input #FileNo, CurrentLine   
  If CurrentLine <>"" then
    Msg = Msg & CurrentLine & Chr(13)
  end if
Loop
 
 
' Close file 
 
Close #FileNo               
Msgbox Msg

Le singole righe sono richiamate in un ciclo Do While, salvato nella variabile Msg e visualizzate nella parte finale di una finestra di messaggio.

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools