|
|
|||||||||||||||
| ec |
Dans cette 3ème partie, nous allons apprendre à travailler avec des fichiers texte organisés en enregistrements.
Les fichiers organisés ainsi utilisent la même base que les fichiers texte (voir partie 2 de cet article). Une notion de champ est ajoutée à chaque ligne. On a donc des lignes composées d'un ensemble de champs. Les champs sont séparés par des virgules, les chaines sont placées avec des doubles quotes (") et les nombre tels quels. Ainsi, le champ suivant
sera écrit dans le fichier : "CodePPC","http://www.codeppc.com",4543 Chaque enregistrement est séparé du suivant par un retour à la ligne <CR><LF> "CodePPC","http://www.codeppc.com",4543
La manipulation des fichiers s'effectue avec l'objet "File" des "FileSystem Controls", si vous ne savez pas ou plus comment instancier cet objet, reportez-vous aux parties 1 et 2 de cet article. Chaque enregistrement est en fait un tableau contenant les valeurs des champs. Ainsi, pour l'enregistrement de CodePPC que nous avons vu en exemple plus haut, sa représentation en mémoire sera un tableau de 3 éléments :
C'est la méthode "WriteFields" qui permet d'écrire d'un bloc un enregistrement. Il suffit de lui donner en paramètre le tableau à utiliser : Dim wFile As FILECTL.File On peut remarquer que rien ne nous empêche d'écrire des enregistrements qui n'ont pas la même taille. Attention, pour un bon fonctionnement de ce style de fichiers, tous les enregistrements doivent avoir la même taille, sinon gros problèmes à l'horizon à la lecture !
C'est la méthode "InputFields" qui effectue la lecture d'un fichier écrit par "WriteFields", cette méthode prend un paramètre qui est le nombre d'enregistrements à lire à la fois. Si vous faites des essais en faisant varier cette valeur vous allez vous rendre compte que même si le fichier est organisé en lignes séparées par un <CR><LF>, cette séparation est vue comme un séparateur de champs. Ainsi, on peut dire que : "CodePPC","http://www.codeppc.com",4543 est équivalent à : "CodePPC","http://www.codeppc.com",4543,"LudiPocket" à condition de dire que l'on veut lire les enregistrement par paquet de 3 ! Cette petite particularité nous indique clairement qu'il faut impérativement connaitre le nombre d'enregistrements par ligne logique (et non pas physique) lors de la lecture des infos. Dim wFile As FILECTL.File Dim wLigne As Variant Set wFile = CreateObject("FILECTL.File") Call wFile.Open("\My Documents\essai.txt", _ fsModeInput, fsAccessRead, fsLockReadWrite) Do While Not wFile.EOF wLigne = wFile.InputFields(3) MsgBox wLigne(0) & vbCrLf & wLigne(1) & vbCrLf & wLigne(2) Loop Call wFile.CloseDans cet exemple de code, nous effectuons la lecture des enregistrements que nous avons précédement écrits en stipulant bien que chaque enregistrement est composé de 3 champs.
A ce state, nous avons fait le tour de toutes les variantes des fichiers texte. Dans la prochaine partie nous allons voir comment utiliser des fichiers à accès aléatoire (Random access)... |
||||||||||||||
|
|
|||||||||||||||
|
Copyright 2001-2004 - Tous droits réservés
|
|||||||||||||||
|
iPAQ
est un produit de COMPAQ.
|