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

From Apache OpenOffice Wiki
Jump to: navigation, search
(New page: {{DISPLAYTITLE:ファイルおよびディレクトリ ({{OOo}} 実行時ライブラリ)}} {{EN/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=Documentat...)
 
Line 1: Line 1:
{{DISPLAYTITLE:ファイルおよびディレクトリ ({{OOo}} 実行時ライブラリ)}}
+
{{DISPLAYTITLE: File e directory ({{OOo}} Libreria runtime)}}
 
{{EN/Documentation/BASICGuideTOC/v2
 
{{EN/Documentation/BASICGuideTOC/v2
 
|ShowPrevNext=block
 
|ShowPrevNext=block
Line 8: Line 8:
 
}}
 
}}
 
   
 
   
ファイル操作は、アプリケーションの基\'96\'7b機\'94\'5cの 1 つです。{{ API には、StarSuite ドキュメントの作成、オープン、編集用に必要となる、各種のオブジェクトが用意されています。OOo}}詳細情報については、 「[[Documentation/BASIC Guide/API Intro|{{OOo}} API について」を参照してください。]]また状況によっては、ファイルシステムの直接アクセス、ディレクトリの検索、テキストファイルの編集などを行う必要もあります。{{OOo}} Basic の実行時ライブラリには、このような処理を行うための関数が各種用意されています。
+
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 [[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|ファイルおよびディレクトリ関係の機\'94\'5cのうち DOS 固有のものは、{{OOo}} でサポートされなくなったか、使用に制限が付くようになりました。たとえば、<tt>ChDir</tt> 関数、<tt>ChDrive</tt> 関数、<tt>CurDir</tt> 関数は現行バージョンでは使用できません。また DOS 固有の属性についても、ファイル属性をパラメータとする関数での使用が行えなくなっています (たとえば、隠しファイルとシステムファイルの区別など)。これらは、{{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}}.}}
  
== ファイル操作 ==
+
== Amministrazione dei file ==
  
=== ディレクトリ内のファイル検索 ===
+
=== Ricerca nelle directory ===
  
<tt>Dir</tt> Basic でディレクトリシステム内でのファイルやサブディレクトリの検索を行うには、{{OOo}} 関数を使用します。<tt>Dir 関数を最初に使用する際には、検索するディレクトリのパスを第 1 パラメータとして指定する必要があります。</tt><tt>Dir 関数の第 2 パラメータには、検索するファイルやディレクトリの名前を指定します。</tt>この関数の戻り値としては、最初にヒットしたディレクトリエントリが {{OOo}} Basic により返されます。次の該当エントリを取得するには、パラメータを付けずに再度 <tt>Dir 関数を呼び出します。</tt>該当するエントリが存在しなかった場合、<tt>Dir</tt> 関数は空白文字列を返します。
+
La funzione <tt>Dir</tt> in {{OOo}} Basic esegue la ricerca di file e sottodirectory nelle directory. Alla prima richiesta, deve essere assegnata a <tt>Dir</tt> come suo primo parametro una stringa contenente il percorso delle directory in cui eseguire la ricerca. Il secondo parametro di <tt>Dir</tt> specifica il file o la directory da cercare. {{OOo}} Basic restituisce il nome della prima voce di directory individuata. Per richiamare la voce successiva, la funzione <tt>Dir</tt> dovrebbe essere richiesta senza parametri. Se la funzione <tt>Dir</tt> non individua più voci, restituisce una stringa vuota.
  
以下のサンプルコードでは、<tt>Dir</tt> 関数を使って、指定ディレクトリ内に存在するすべてのファイルを一覧表示します。この手続きでは、個々のファイル名を変数 <tt>AllFiles</tt> に記録してゆき、最後の段階でメッセージ\'83\'7bックスに一括\'95\'5c示させています。
+
L'esempio seguente mostra come utilizzare la funzione <tt>Dir</tt> per richiedere tutti i file situati in una directory. La procedura salva i singoli nomi di file nella variabile <tt>AllFiles</tt> e quindi la visualizza in una finestra di messaggio.
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 37: Line 38:
 
</source>
 
</source>
  
<tt>0</tt> 関数の第 2 パラメータに <tt>Dir</tt> (ゼロ) を指定しているのは、ディレクトリを無視してファイル名のみを <tt>Dir</tt> 関数の戻り値に返させるためです。このようなパラメータ値としては、以下のものを指定できます。
+
Lo <tt>0</tt> (zero) utilizzato come secondo parametro nella funzione <tt>Dir</tt> assicura che <tt>Dir</tt> restituisca solo i nomi dei file e che le directory siano ignorate. I parametri seguenti possono essere specificati qui:
  
* <tt>0</tt>:通常のファイルのみを対象とする。
+
* <tt>0</tt> :Restituisce i file normali
* <tt>16</tt>:サブディレクトリのみを対象とする。
+
* <tt>16</tt> :Sottodirectory
  
以下のサンプルコードでは、基本的に上記のものと同じ処理を行なっていますが、こちらは <tt>Dir</tt> 関数の第 2 パラメータに 16 を指定しているので、ファイルではなくサブディレクトリを対象にしています。
+
L'esempio seguente è praticamente identico a quello precedente, ma la funzione <tt>Dir</tt> trasferisce il valore 16 come parametro, che restituisce le sottodirectory di una cartella anziché i nomi dei file.
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 61: Line 62:
 
</source>
 
</source>
  
{{Documentation/Note|{{OOo}} Basic <tt>Dir</tt> 関数にパラメータ値 16 を指定すると、該当ディレクトリ内のサブディレクトリのみが返されます。VBA で同様の処理を行うと、サブディレクトリだけでなく通常のファイルも返されるので、ディレクトリ名のみを取得するには追加の操作が必要です。<tt>CompatibilityMode ( true )</tt> 関数を使用すると、{{OOo}} Basic VBA と同様に動作します。つまり、Dir 関数のパラメータに 16 を指定すると、サブディレクトリだけでなく通常のファイルも返されます。 }}
+
{{Documentation/Note|Quando richiesto in {{OOo}} Basic, la funzione <tt>Dir</tt> utilizzata con il parametro 16, restituisce solo le sottodirectory di una cartella. In VBA, la funzione restituisce anche i nomi dei file standard in modo che sia necessario un ulteriore controllo per richiamare le sole directory. Se si utilizza la funzione <tt>CompatibilityMode ( true )</tt>, {{OOo}} Basic si comporta come VBA e la funzione Dir, usando il parametro 16, restituisce le sottodirectory e i file standard.}}
  
{{Documentation/Note|VBA では、'''隠しファイル''''''システムファイル''''''アーカイブファイル''''''ボリューム名'''などの属性に基づいた検索オプションを利用できます。{{OOo}} Basic の場合、このようなファイル機能の存在しないオペレーティングシステム上での操作も前提としているため、該当するオプションは用意されていません。}}
+
{{Documentation/Note|Le opzioni fornite in VBA per la ricerca specifica nelle directory dei file con le proprietà '''concealed''', '''system file''', '''archived''' e '''volume name''' non esistono in {{OOo}} Basic perché le funzioni di file system corrispondenti non sono disponibili in tutti i sistemi operativi.}}
  
{{Documentation/Note|<tt>Dir</tt> に一覧で指定されたパスでは、* および ? を使用する可能性があります。VBA および {{OOo}} Basic 両方のプレースホルダとして使用できます。ただし VBA とは異なり、{{OOo}} Basic * プレースホルダを使用すると、ファイル拡張子かファイル名の最後の文字のみが一致する場合があります。}}
+
{{Documentation/Note|Le specifiche di percorso elencate in <tt>Dir</tt> possono utilizzare i segnaposto * e ? sia in VBA che in {{OOo}} Basic. In {{OOo}} Basic, a differenza di VBA, il segnaposto * può tuttavia essere solo l'ultimo carattere di un nome e/o estensione di file. }}
  
=== ディレクトリの作成および削除 ===
+
=== Creazione ed eliminazione di directory ===
  
{{OOo}} Basic でディレクトリを作成するには、<tt>MkDir</tt> 関数を使用します。
+
{{OOo}} Basic dispone della funzione <tt>MkDir</tt> per la creazione di directory.
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 75: Line 76:
 
</source>
 
</source>
  
この関数は、ディレクトリおよびサブディレクトリを作成します。また必要であれば、指定ディレクトリに対する下層ディレクトリも作成できます。たとえば <tt>C:\SubDir1</tt> ディレクトリのみが存在する状況で以下のコードを実行したとします。
+
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 <tt>C:\SubDir1</tt>, la chiamata
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 81: Line 82:
 
</source>
 
</source>
  
この場合、<tt>C:\SubDir1\SubDir2</tt> ディレクトリおよび <tt>C:\SubDir1\SubDir2\SubDir3</tt> ディレクトリの両方が作成されます。
+
crea sia la directory <tt>C:\SubDir1\SubDir2</tt> che la directory <tt>C:\SubDir1\SubDir2\SubDir3</tt>.
  
ディレクトリを削除するには、<tt>RmDir</tt> 関数を使用します。
+
La funzione <tt>RmDir</tt> consente di eliminare le directory.
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 89: Line 90:
 
</source>
 
</source>
  
ディレクトリにサブディレクトリまたはファイルが含まれている場合、'''それらも削除されます。'''このため、<tt>RmDir</tt> を使用する場合は、注意が必要です。
+
Qualora la directory contenga sottodirectory o file, verranno '''eliminati anch'essi.''' Si
 +
consiglia pertanto di utilizzare <tt>RmDir</tt> con cautela.
  
{{Documentation/Note|VBA <tt>MkDir</tt> 関数および <tt>RmDir 関数は、現在のディレクトリのみを操作対象とします。</tt>これに対して、{{OOo}} Basic では、<tt>MkDir</tt> および <tt>RmDir</tt> を使用して、複数レベルのディレクトリを作成または削除できます。}}
+
{{Documentation/Note|In VBA, le funzioni <tt>MkDir</tt> e <tt>RmDir</tt> sono relative alla sola directory corrente. In {{OOo}} Basic, <tt>MkDir</tt> e <tt>RmDir</tt> si possono invece utilizzare per creare o eliminare livelli di directory.}}
  
{{Documentation/Note|VBA <tt>RmDir</tt> 関数で、ファイルを含むディレクトリを削除しようとするとエラーメッセージが\'95\'5c示されます。{{OOo}} Basic の場合は、指定ディレクトリ '''およびその中のすべてのファイル''' が削除されます。<tt>CompatibilityMode ( true )</tt> 関数を使用すると、{{OOo}} Basic は、VBA と同じように動作します。}}
+
{{Documentation/Note|In VBA, <tt>RmDir</tt> produce un messaggio di errore se una directory contiene un file. In {{OOo}} Basic, vengono eliminati la directory '''e tutti i suoi file'''. Se si utilizza la funzione <tt>CompatibilityMode ( true )</tt>, {{OOo}} Basic si comporta come VBA.}}
  
=== ファイルのコピー、名前変更、削除および存在確認 ===
+
=== Copia, ridenominazione, eliminazione e controllo dell'esistenza dei file ===
  
次の呼び出しでは、<tt>Source</tt>: という名前で、<tt>Destination</tt> ファイルのコピーが作成されます。
+
La chiamata seguente crea una copia del file <tt>Source</tt> sotto il nome di <tt>Destination</tt>:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 103: Line 105:
 
</source>
 
</source>
  
次の関数を使用すると、<tt>OldName</tt> ファイルを <tt>NewName</tt> という名前に変更できます。このようにコン\'83\'7dを使わずキーワード <tt>As</tt> を使用するのが、Basic 言語の基\'96\'7b形です。
+
Con l'ausilio della seguente funzione è possibile rinominare il file <tt>OldName</tt> in <tt>NewName</tt>. La sintassi della parola chiave <tt>As</tt> e il fatto che non è utilizzata una virgola risalgono alle radici del linguaggio
 +
Basic.
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 109: Line 112:
 
</source>
 
</source>
  
次の呼び出しでは、<tt>Filename</tt> ファイルが削除されます。ディレクトリ (およびその中のファイル) を削除するには、<tt>RmDir</tt> 関数を使用してください。
+
La chiamata seguente elimina il file <tt>Filename</tt>. Per eliminare le directory (e i relativi file) avvalersi della funzione <tt>RmDir</tt>.
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 115: Line 118:
 
</source>
 
</source>
  
特定のファイルが存在するかを確認するには、<tt>FileExists</tt> 関数を使用します。
+
La funzione <tt>FileExists</tt> può essere utilizzata per controllare se esiste un file:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 123: Line 126:
 
</source>
 
</source>
  
=== ファイル属性の取得と変更 ===
+
=== 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.
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 134: Line 137:
 
</source>
 
</source>
  
戻り値はビット\'83\'7dスクの形式で返され、その中には以下のような情報が含まれています。
+
Il valore restituito è fornito come maschera di bit in cui sono possibili i valori seguenti:
  
* 1 : 読み取り専用のファイル
+
* 1 : file di sola lettura
* 16 : ディレクトリ名
+
* 16 : nome di una directory
  
ここでは、<tt>test.txt</tt> という名前のファイルのビットマスクを取得して、その情報を基に、読み取り専用であるかどうか、またディレクトリであるかどうかを調べています。どちらにも該当しなかった場合は、変数 <tt>FileDescription</tt> に「normal」という文字列を代入させています。
+
L'esempio seguente determina la maschera di bit del file <tt>test.txt</tt> e controlla se è di sola lettura e se si tratta di una directory. Se nessuna delle due è applicabile, a <tt>FileDescription</tt> è assegnata la stringa "normale".
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 162: Line 165:
 
</source>
 
</source>
  
{{Documentation/Note|VBA では、'''隠しファイル''''''システムファイル、アーカイブファイル''''''ボリューム名'''のファイル属性を示すフラグを利用できますが、これらは Windows 固有の機能であり、{{OOo}} Basic の場合は、このような機能の存在しないオペレーティングシステム上での操作も前提としているため、これらのフラグはサポートされていません。}}
+
{{Documentation/Note|I flag utilizzati in VBA per ricercare le proprietà '''concealed''', '''system file, archived''' e '''volume name''' dei file non sono supportati in {{OOo}} Basic in quanto specifici di Windows e non disponibili (o solo in parte) in altri ambienti operativi.}}
  
ファイル属性を変更するには、<tt>SetAttr 関数を使用します。</tt>次の呼び出しは、指定ファイルに読み取り専用の属性を設定しています。
+
La funzione <tt>SetAttr</tt> consente di modificare le proprietà di un file. La chiamata seguente
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 170: Line 173:
 
</source>
 
</source>
  
逆に、ファイルの読み取り専用属性を解除するには、以下のように指定します。
+
Per eliminare uno stato di sola lettura preesistente, avvalersi della chiamata seguente:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 176: Line 179:
 
</source>
 
</source>
  
ファイルを最後に変更した日付と時刻を調べるには、<tt>FileDateTime 関数を使用します。</tt>このようにして得られる日付の書式は、システムのロケール設定に従います。
+
La data e l'ora dell'ultima modifica operata su un file sono fornite dalla funzione <tt>FileDateTime</tt>. Qui la data è formattata in conformità alle impostazioni specifiche del paese utilizzate sul sistema.
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 182: Line 185:
 
</source>
 
</source>
  
ファイルサイズを調べるには、<tt>FileLen</tt> 関数を使用します (戻り値はロング整数のバイト値)
+
La funzione <tt>FileLen</tt> determina la lunghezza di un file in byte (come numero intero lungo).
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 188: Line 191:
 
</source>
 
</source>
  
== テキストファイルの書き込みと読み取り ==
+
== Scrittura e lettura di file di testo ==
  
{{OOo}} Basic には、ファイルの書き込みおよび読み取り用の各種メソッドが用意されています。以下の説明は、テキストファイル関係の機\'94\'5cをまとめたものです (注意: StarSuite の文書ドキュメントに関するものでは '''ありません''')
+
{{OOo}} 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.
  
フリーのファイルハンドルの取得には、<tt>FreeFile 関数を使用します。</tt>このハンドルは、<tt>Open 命令によるファイルオープン時にパラメータとして指定します。</tt>テキストファイルとしてファイルをオープンするには、以下のように <tt>Open</tt> 命令を記述します。
+
Per creare un descrittore di file libero, avvalersi della funzione <tt>FreeFile</tt>. Il descrittore di file è utilizzato come parametro per l'istruzione<tt>Open</tt> che apre il file. Per aprire un file in modo da specificarlo come file di testo, usare la chiamata <tt>Open</tt> seguente:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 202: Line 205:
 
</source>
 
</source>
  
<tt>Filename</tt><Check Alignment of PHs>ここで  には、ファイル名を文字列の形で指定します。<tt>FileNo</tt>同じく  には、<tt>FreeFile</tt> 関数で取得しておいたファイルハンドルを指定します。
+
<tt>Filename</tt> è una stringa contenente il nome del file. <tt>FileNo</tt> è il descrittore creato dalla funzione <tt>FreeFile</tt>.
  
オープンしたファイルに対しては、<tt>Print</tt> 命令により、1 行単位の書き込みが行えます。
+
Una volta aperto il file, l'istruzione <tt>Print</tt> può essere descritta riga per riga:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 210: Line 213:
 
</source>
 
</source>
  
<tt>FileNo</tt><Check Alignment of PHs>ここでも  はファイルハンドルを示します。第 2 パラメータのテキストは、テキストファイルへ書き込む行の内容を示します。
+
<tt>FileNo</tt> rappresenta anche qui il descrittore di file. Il secondo parametro specifica il testo da salvare come riga del file di testo.
  
書き込みの終了したファイルに対しては、<tt>Close</tt> によるクローズ処理が必要です。
+
Una volta completato il processo di scrittura, il file deve essere chiuso utilizzando una chiamata <tt>Close</tt>:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 218: Line 221:
 
</source>
 
</source>
  
この場合も、ファイルハンドルを指定する必要があります。
+
Anche qui dovrete specificare il gestore di file.
  
以下のサンプルコードは、ファイルのオープンから、書き込み、クローズまでの流れを示します。
+
L'esempio seguente mostra come aprire, descrivere e chiudere un file di testo:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 236: Line 239:
 
</source>
 
</source>
  
=== テキストファイルの読み取り ===
+
=== Lettura di file di testo ===
  
テキストファイルの読み取りは、書き込みと同様の手順で行います。ただし <tt>Open</tt> 命令によるファイルのオープン時には <tt>For Input</tt> の代わりに <tt>For Output を指定し、Print 命令によるデータの書き込みではなく Line Input 命令によるデータの読み込みを行う点が異なります。</tt>
+
La lettura dei file di testo avviene secondo le stesse modalità della scrittura. L'istruzione <tt>Open</tt> utilizzata per aprire il file contiene l'espressione <tt>For Input</tt> in luogo dell'espressione <tt>For Output</tt>. Per leggere i dati è opportuno utilizzare l'istruzione Line Input anziché il comando Print di scrittura dei dati.
  
テキストファイルの呼び出し時に、<tt>eof</tt> 命令を使用して、ファイルの末尾に到達したかどうかを確認します。
+
Infine, quando si richiama un file di testo, viene impiegata l'istruzione <tt>eof</tt> per controllare se è stata raggiunta la fine del file:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 246: Line 249:
 
</source>
 
</source>
  
以下のサンプルコードは、テキストファイルからのデータの読み取り手順を示します。
+
L'esempio seguente illustra come eseguire la lettura di un file di testo:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 279: Line 282:
 
</source>
 
</source>
  
ここでは、<tt>Do While</tt> ループを使ってデータを 1 行ずつ読み出しては、変数 <tt>Msg</tt> に追加することにより格納してゆき、最後にまとめてメッセージボックスに出力させています。
+
Le singole righe sono richiamate in un ciclo <tt>Do While</tt>, salvato nella variabile <tt>Msg</tt> e visualizzate nella parte finale di una finestra di messaggio.
  
 
{{PDL1}}
 
{{PDL1}}
 
{{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Files and Directories (Runtime Library)}}
 
{{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Files and Directories (Runtime Library)}}

Revision as of 18:20, 25 June 2009

Template:EN/Documentation/BASICGuideTOC/v2

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