|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : janvier 2005 Messages : 527 ![]() |
Bonjour,
Les données de ma base sont importées à partir d'un csv obtenu à partir d'un autre logiciel: - Quand l'utilisateur clique sur exporter/enregistrer depuis l'autre logiciel, le séparateur est la virgule. - Quand l'utilisateur clique sur exporter/ouvrir depuis l'autre logiciel, puis enregistrer sous, le séparateur est le point virgule. Pour ne pas obliger l'utilisateur à choisir l'une ou l'autre méthode, j'ai créé 2 fichiers de spécification, 1 pour la virgule, 1 pour le point virgule. Mon problème est de déterminer en vba le séparateur du csv. Code :
Merci de votre aide |
||
|
|
00
|
|
|
#2 | ||||||
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 479 ![]() |
Est-ce que tu connais la structure de ton fichier à l'avance ?
Peux-tu raisonnablement penser qu'il n'y aura pas de ; dans tes données ? Si oui tu peux simplement ouvrir le fichier en lecture séquentielle, lire la 1ère ligne et regarder si elle contient un ;. Si oui à priori le séparateur est ; sinon c'est virgule. Autre solution plus élaborer : ouvrir le fichier en lecture séquentielle lire la 1ère ligne découper la ligne sur les ; compter le nombre d'éléments obtenus comparer ce nombre avec le nombre attendu de champs. Pour ouvrir un fichier en lecture séquentielle : Code :
Code :
Code :
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
||||||
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : janvier 2005 Messages : 527 ![]() |
Salut marot_r,
Je n'ai pas encore testé ton code mais je te remercie déjà de m'avoir répondu. Je connais le nombre de champs du csv à l'avance. Par contre, il se peut qu'il y ait des points virgules dans les données elles-mêmes (saisie libre pour certaines variables). Ce que je me dis en voyant ta proposition, c'est que je peux appliquer ta 1ère solution en ne lisant que la 1ère ligne du fichier correspondant aux entêtes: cette ligne n'a pas de point virgule dans le nom des colonnes, donc si j'en trouve un en lisant la 1ère ligne du fichier, c'est que le séparateur est le point virgule. Je pars en congés quelques jours, je teste ça vite et je reviens vers toi pour te dire où j'en suis. Bonnes fêtes de fin d'année ! |
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Michel Ingénieur développement logiciels Inscription : mai 2005 Messages : 1 584 ![]() |
Bonjour,
Citation:
sinon il faut l'interdire dans les données.
__________________
"tout le monde veut sauver la planète, mais personne ne veut descendre les poubelles." J Yanne |
|
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : janvier 2005 Messages : 527 ![]() |
Bonjour à tous !
Et merci ![]() De retour de congés, j'ai pu tester le code et ça fonctionne parfaitement. Donc un grand merci à toi marot_r. @micniv: peut etre que le point virgule est interdit dans la saisie, je n'en sais rien, les données ne sont pas issues de mon application. Le code ici fonctionne bien car je regarde la 1ère ligne, ligne d'entête où je suis 100% sur qu'il n'y a pas de points virgules. Voilà. Bonne journée ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com