Bonjour à tous,
Comme je l'ai indiqué dans ce post, dans mon petit programme je veux lire le contenu d'un fichier en mode séquentiel.
J'utilise donc le code suivant :
A des fins de simplification je n'ai pas affiché ici les instructions contenues entre do et loop.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 fichier_agents = App.Path & "\liste_agents.txt" Open fichier_agents For Input As #1 Do While Not EOF(1) Input #1, nom, datee, grade, chellon Loop
Mon premier problème est le suivant :
mon fichier liste_agents.txt était à la base un tableau excel que j'ai exporté en CSV avec ; (point virgule) comme séparateur.
Cependant, je n'arrive pas à lire les champs s'ils sont séparés par un ; (point virgule). En effet le code suivant me renvoi une erreur :
J'ai du les remplacer par une , (virgule). Mais cette solution ne me convient pas bien, parce que l'utilisateur de mon programme ne pourra pas modifier liste_agents avec un tableur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Input #1; nom; datee; grade; chellon
Ma question est donc la suivante : comment lire le contenu d'un fichier CSV en lecture séquentielle ?
Mon deuxième problème (plus complique celui-là) est que je ne sais pas à l'avance le nombre de champs que va contenir chaque ligne.
Pour l'instant, comme vous avez du le deviner en lisant mon code, ils sont au nombre de 4 :
nom, datee, grade, chellon
Correspondant respectivement à :
Le nom de l'agent, sa date d'embauche, son grade actuel, son échellon actuel.
Ultérieurement l'utilisateur de mon programme doit pouvoir enrichir cette base de donnée avec autant de renseignement qu'il le souhaite, par exemple :
NOM ; date d'embauche ; grade ; échelon ; affectation ; habilitation 1 oui/non ; habilitation 2 oui/non ; etc ...
Ainsi, comment lire ce fichier sans savoir combien de champ contient chaque ligne ?
je pense qu'il me faudra utiliser lineinput, mais je ne comprends pas comment l'utiliser.
Enfin, troisième question, dans ce même genre de fichier, comment ajouter une nouvelle ligne de façon à ce que le premier champ soit classé par ordre croissant (alphabétique ou chronologique) ?
Si j'utilise le code suivant, la ligne va être ajouter à la fin du fichier, mais ce n'est pas ce que je veux ...
Merci d'avance pour votre aide et vos réponses piétinantes
Code : Sélectionner tout - Visualiser dans une fenêtre à part Open fichier_agents For append As #1
Partager