Difference between revisions of "IT/Documentation/BASIC Guide/Files and Directories (Runtime Library)"
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 [[ | + | 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à.
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
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.
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
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). |