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

From Apache OpenOffice Wiki
Jump to: navigation, search
m
(Création et suppression de répertoires)
Line 68: Line 68:
  
 
=== Création et suppression de répertoires ===
 
=== Création et suppression de répertoires ===
 
+
Dans {{OOo}} Basic, la fonction <tt>MkDir</tt> permet de créer des répertoires.
 
+
                    Dans {{OOo}} Basic, la fonction <tt>MkDir</tt> permet de créer des répertoires.
+
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 76: Line 74:
 
</source>
 
</source>
  
Cette fonction crée des répertoires et des sous-répertoires. Tous les répertoires nécessaires à la hiérarchie sont également créés, le cas échéant. Par exemple, si seul le répertoire <tt>C:\SubDir1</tt> existe, l'appel :
+
Cette fonction crée des répertoires et des sous-répertoires. Tous les répertoires nécessaires à la hiérarchie sont également créés, le cas échéant. Par exemple, si seul le répertoire <tt>C:\SubDir1</tt> existe, l'appel :
  
 
<source lang="oobas">
 
<source lang="oobas">

Revision as of 16:20, 18 February 2015

doc OOo
Book.png

L'utilisation des fichiers est une des tâches de base d'une application. L'API Apache OpenOffice fournit un grand nombre d'objets permettant de créer, d'ouvrir et de modifier des documents Office. Ils sont présentés en détail au chapitre Introduction à l'API Apache OpenOffice. Indépendamment de cela, il peut parfois s'avérer nécessaire d'accéder directement au système de fichiers, d'effectuer des recherches dans les répertoires ou d'éditer des fichiers texte. La bibliothèque d'exécution de Apache OpenOffice Basic fournit plusieurs fonctions fondamentales pour ces tâches.

Template:Documentation/Note

Administration des fichiers

Recherche dans les répertoires

La fonction Dir de Apache OpenOffice Basic permet de parcourir les répertoires et sous-répertoires pour y rechercher de fichiers. Lors de la première requête, vous devez assigner une chaîne contenant le chemin des répertoires dans lesquels effectuer la recherche comme premier paramètre de la fonction Dir. Le second paramètre de la fonction Dir spécifie le fichier ou le répertoire à rechercher. Apache OpenOffice Basic retourne le nom de la première entrée de répertoire trouvée. Pour obtenir l'entrée suivante, vous devez appeler la fonction Dir sans lui passer de paramètres. Si la fonction Dir ne trouve pas d'entrée supplémentaire, elle retourne une chaîne vide.

L'exemple suivant illustre l'utilisation de la fonction Dir pour obtenir la liste des fichiers d'un répertoire. Les différents noms de fichier sont enregistrés dans la variable AllFiles, puis celle-ci s'affiche dans une boîte de message.

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

Le 0 (zéro) utilisé comme second paramètre de la fonction Dir indique à Dir de ne retourner que les noms des fichiers et d'ignorer les répertoires. Vous pouvez spécifier ici les paramètres suivants :

  • 0 : retourne les fichiers normaux ;
  • 16 : sous-répertoires.

L'exemple suivant est pratiquement identique au précédent, si ce n'est que la fonction Dir est appelée avec une valeur 16 en paramètre et retourne donc les sous-répertoires d'un dossier et non plus les noms des fichiers.

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

Création et suppression de répertoires

Dans Apache OpenOffice Basic, la fonction MkDir permet de créer des répertoires.

MkDir ("C:\SubDir1")

Cette fonction crée des répertoires et des sous-répertoires. Tous les répertoires nécessaires à la hiérarchie sont également créés, le cas échéant. Par exemple, si seul le répertoire C:\SubDir1 existe, l'appel :

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

crée à la fois le répertoire C:\SubDir1\SubDir2 et le répertoire C:\SubDir1\SubDir2\SubDir3.

La fonction RmDir supprime des répertoires.

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

Si le répertoire contient des sous-répertoires ou des fichiers, ceux-ci sont également supprimés. Par conséquent, utilisez la fonction RmDir avec prudence.

Template:Documentation/Note

Template:Documentation/Note

Copie, attribution d'un nouveau nom, suppression et vérification de l'existence de fichiers

L'appel suivant crée une copie du fichier Source sous le nom de Destination :

FileCopy(Source, Destination)

La fonction suivante permet de remplacer le nom de fichier OldName par NewName. Le mot clé As et l'absence de virgule remontent aux origines du langage Basic.

Name OldName As NewName

L'appel suivant supprime le fichier Filename. Pour supprimer un répertoire (avec tous ses fichiers), utilisez la fonction RmDir.

Kill(Filename)

Vous pouvez utiliser la fonction FileExists pour vérifier l'existence d'un fichier :

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

Lecture et modification des propriétés d'un fichier

Parfois, il est nécessaire de connaître les propriétés des fichiers utilisés, par exemple la date de leur dernière modification et leur longueur.

L'appel suivant retourne des propriétés relatives à un fichier.

Dim Attr As Integer
Attr = GetAttr(Filename)

La valeur de retour est fournie sous la forme d'un masque de bits qui peut prendre les valeurs suivantes :

  • 1 : fichier en lecture seule ;
  • 16 : nom d'un répertoire.

L'exemple suivant identifie le masque de bits du fichier test.txt et détermine s'il est en lecture seule ou s'il s'agit d'un répertoire. Si aucun de ces deux cas ne s'applique, FileDescription reçoit la chaîne "normal".

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 fonction SetAttr permet de modifier les propriétés d'un fichier. Vous pouvez donc définir un fichier comme étant en lecture seule à l'aide de l'appel suivant :

SetAttr("test.txt", 1)

L'appel suivant permet de supprimer un statut de lecture seule :

SetAttr("test.txt", 0)

Il est possible d'obtenir la date et l'heure de la dernière modification d'un fichier à l'aide de la fonction FileDateTime. La date est formatée ici selon les paramètres régionaux utilisés sur le système.

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

La fonction FileLen détermine la longueur d'un fichier en octets (au format entier long).

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

Écriture et lecture de fichiers texte

Apache OpenOffice Basic fournit un large éventail de méthodes permettant de lire et d'écrire des fichiers. Les explications suivantes concernent l'utilisation de fichiers texte (et non de documents texte).

Écriture de fichiers texte

Pour accéder à un fichier texte, vous devez d'abord l'ouvrir. Pour ce faire, il faut un descripteur de fichier libre, qui identifie clairement le fichier pour les accès ultérieurs.

La fonction FreeFile sert à créer un descripteur de fichier libre. Ce descripteur est passé comme paramètre à l'instruction Open, qui ouvre le fichier. Pour ouvrir un fichier de manière à pouvoir le spécifier comme fichier texte, l'appel Open est :

Open Filename For Output As #FileNo

Filename est une chaîne de caractères contenant le nom du fichier. FileNo est le descripteur créé par la fonction FreeFile.

Une fois le fichier ouvert, vous pouvez décrire l'instruction Print ligne par ligne :

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

FileNo désigne ici aussi le descripteur de fichier. Le second paramètre spécifie le texte à enregistrer comme ligne du fichier texte.

Une fois le processus d'écriture achevé, le fichier doit être refermé avec un appel Close :

Close #FileNo

Là encore, il faut spécifier le descripteur du fichier.

L'exemple suivant illustre l'ouverture, la description et la fermeture d'un fichier texte :

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

Lecture de fichiers texte

Les fichiers texte sont lus de la même manière qu'ils sont écrits. L'instruction Open utilisée pour ouvrir le fichier contient l'expression For Input à la place de l'expression For Output et, au lieu de la commande Print permettant d'écrire des données, c'est la commande Line Input qui est utilisée pour lire les données.

Enfin, lorsque vous accédez à un fichier texte, l'instruction eof permet de déterminer si la fin de fichier a été atteinte :

eof(FileNo)

L'exemple suivant illustre la lecture d'un fichier texte :

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

Les différentes lignes sont extraites dans une boucle Do While, enregistrées dans la variable Msg, puis affichées à la fin dans une boîte de message.

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