vertigo56
Messages postés3Date d'inscriptiondimanche 20 avril 2008StatutMembreDernière intervention27 avril 2008
-
20 avril 2008 à 12:24
vertigo56
Messages postés3Date d'inscriptiondimanche 20 avril 2008StatutMembreDernière intervention27 avril 2008
-
20 avril 2008 à 13:49
Bonjour à tous,
Je me trouve devant un problème qui ne s'était jamais posé auparavant.
Je dois réaliser une base de données permettant un suivi d'employés.
Les utilisateur de la base de données pourront importer un fichier texte, ce fichier texte contiendra tout "les enregistrements"qui seront enregistrés dans la base de données. A noter que les champs ( Si on peut parler de ça dans un fichier texte) sont séparés par des tabulations. Exemple dans mon fichier texte :
Nom Prénom Age Sexe Ville
Dubois Philippe 55 Masculin Paris
Dupont Julien 46 Masculin Paris
J'ai déja créer ma table qui recevra ces enregistrement.
La question que je me pose c'est comment dans mon fichier texte détecter les tabulations, puis ensuite prendre "champ" par "champ", dans mon cas, mettre Dubois dans une variable, Philippe dans une autre, 55 dans une autre... une fois que j'ai ça je pense que ça ira ... je prends les variables et je m'en sert pour faire mon insert, par contre je me demande aussi comment détecter que c'est un nouvel enregistrement, en gros comment lui dire que dés qu'il n'y a plus de données à la fin de la ligne, il doit aller à la ligne suivante du fichier texte, ce qui signifie que c'est un nouvel enregistrement, dans ce cas là je pense que je recommencerai ma boucle mais comment représenter celà...
J'ai trouvé ce petit script sur vbfrance :
Dim t() as string
dim buf as string
dim nf as integer
nf = freefile
open "Chemin_Fichier" for input as #nf
do while not eof(nf)
line input #nf, buf
t=split(buf,";")'là, traitement : t(0) 0000000000 et t(1) 9999999999 pour ton exemple
loop
close #nf
Mais je n'arrive pas trop à le comprendre.
Je ne sais pas si ça pourrait être une partie de la solution.
Merci aux âmes charitables qui me répondront.
A voir également:
Parcourir et récupérer des données dans un fichier texte.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 20 avril 2008 à 13:46
Dim t() as string
dim buf as string
dim nf as integer
nf = freefile
open "Chemin_Fichier" for input as #nf 'CheminFichier est à remplacer par le chemin réel du fichier
do while not eof(nf) 'ICI c'est justement la boucle de lecture du fichier
line input #nf, buf 'ICI à chaque cycle on lit une ligne du fichier
t=split(buf,";") 'ICI on découpe la ligne en un tableau de données en utilisant le ; comme séparateur. Donc toi il te faudra remplacer ";" par vbTab
'là, traitement : t(0) 0000000000 et t(1) 9999999999 pour ton exemple
'Ben là comme c'est dit, tu dois traiter tes données, c'est à dire faire l'insert dans la base.
't(0) contiendra le nom, t(1) le prénom, ....
loop 'Et on recommence la boucle
close #nf
Pour ce qui est de detecter une nouvelle ligne c'est "automatique". Line Input lit une ligne du fichier et positionne le curseur sur le caractère suivant, donc le 1er caractère de la ligne suivante, si elle existe.
Pour savoir si elle existe, en d'autre termes pour savoir si tu n'es pas arrivé à la fin du fichier c'est Not Eof(nf) qui te le dit dans la condition de la boucle.