I.T.A.G (DTS1)
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

I.T.A.G (DTS1)

Ce forum incha allah aura pour but d aider les etudiant de la DTS1 a en plus savoir cotee cours et tt que sa soit reseau ou devlopment
 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
-23%
Le deal à ne pas rater :
EVGA SuperNOVA 650 G6 – Alimentation PC 100% modulaire 650W, 80+ ...
77.91 € 100.91 €
Voir le deal

 

 Lire un fichier

Aller en bas 
AuteurMessage
ultrasur
moderateur
moderateur
ultrasur


Messages : 200
Date d'inscription : 11/02/2008
Age : 36

Lire un fichier Empty
MessageSujet: Lire un fichier   Lire un fichier Icon_minitimeMer 13 Fév - 8:23

Lire un fichier
Il y a trois possibilités. Deux que je ne cite que pour l’anecdote, car mieux vaut les éviter, et une vraiment utile.
Pour l’anecdote uniquement, donc :
NomDeVariable = Input (100, #i)
...recopie dans NomDeVariable les 100 caractères suivants du fichier numéro i, à partir de la dernière lecture. Sinon, on peut aussi faire :
Toto = LOF(#i)
Input (Toto, #i)
Toto récupère ici le nombre de caractères du fichier texte, via la fonction LOF. On recopie ensuite tout le fichier d’un seul coup d'un seul dans la variable NomDeVariable.
Mais l'avantage des fichiers texte étant d'être organisés par lignes, c'est-à-dire par enregistrements, voilà ce qu’il faut utiliser afin de ne pas perdre cette structuration :
Line Input #i, NomDeVariable
C’est de loin la meilleure solution. Elle suppose toutefois que le fichier texte soit correctement construit, c’est-à-dire que chaque série de champs se termine par les caractères CR LF, formant ainsi une ligne (vous n’avez pas besoin de vous tracasser pour cela, si vous avez vous-mêmes correctement créé le fichier texte). A ce moment-là, chaque lecture avec Line Input copie la ligne suivante du fichier dans NomDeVariable.
Si vous avez eu de surcroît la bonne idée de bâtir votre fichier sous forme de champs de largeur fixe, ce sera un jeu d'enfants de récupérer, au sein de chaque ligne, les différents champs. D'une manière ou d'une autre, il suffira de découper à un moment ou à un autre NomDeVariable en différents morceaux via la fonction Mid (on aura soin d’épurer les espaces inutiles grâce à la fonction Trim mentionnée précédemment.
Je rappelle qu'avec les fichiers, la technique standard consiste à balancer d'entrée de jeu l'intégralité du fichier en mémoire vive, autrement dit dans un tableau (on évite de faire cela uniquement si le fichier est vraiment trop massif pour tenir en mémoire, ce qui est un cas très rare). En revanche, pour le détail, on peut opter pour plusieurs options : soit "casser" d'entrée chaque ligne du fichier en différents champs qui rempliront différents tableaux, soit tout envoyer dans un seul tableau, à raison d'une ligne complète par élément du tableau, ligne dont on extrait ensuite les champs au fur et à mesure des besoins. C'est au choix du client. Cette seconde technique donnera, extrêmement classiquement, les lignes de code suivantes :
Dim T() as string
...
Open "C:\Monfichier.txt" As #1 For Input
i = -1
While Not Eof(1)
i = i + 1
Redim Preserve T(i)
Line Input #1, T(i)
Wend
Le principe est simple : on crée un tableau dynamique. On parcourt le fichier ligne après ligne tant qu'il en reste (boucle While ... Wend). A chaque ligne, on actualise l'indice i, on redimensionne le tableau, et on recopie la ligne dans la nouvelle case ainsi créée, tout en préservant les cases précédemment remplies. Et hop.
Revenir en haut Aller en bas
http://www.realmadridclub.net
 
Lire un fichier
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Voir un fichier (cat et more)
» Ecrire dans un fichier
» Trouver du texte dans un fichier (grep)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
I.T.A.G (DTS1) :: Cours de Réseaux et Development :: Devlopment :: cours-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser