Fichiers et répertoires (bibliothèque d'exécution de Apache OpenOffice)
- Fonctions de conversion (bibliothèque d'exécution de Apache OpenOffice)
- Chaînes (bibliothèque d'exécution de Apache OpenOffice BASIC)
- Date et heure (bibliothèque d'exécution de Apache OpenOffice)
- Fichiers et répertoires (bibliothèque d'exécution de Apache OpenOffice)
- Boîtes de message et zones de saisie(bibliothèque d'exécution de Apache OpenOffice)
- Autres fonctions (bibliothèque d'exécution de Apache OpenOffice)
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.
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
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.
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
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). |