Bonjour,
Habitué a consulter ce forum en tant que lecteur, je viens vers vous en cette belle apres midi (dans le sud ouest en tout cas).
Je suis actuellement confronté a un problème que je n'arrive pas a résoudre. Celui ci concerne comme il est indiqué dans le titre de ce message la lecture d'un fichier .csv.
Le réel problème vient du fait que je travaille sur 2 environnements différents, sur le premier la lecture de ce fichier .csv se fait sans problème et toute les macros qui reposent la dessus se déroule sans soucis.
C'est sur le second que cela se corse. A savoir que sur ce second PC je n'ai pas Microsoft Visual basic installé, je n'ai que le Visual basic for application d'installé.
Afin de comprendre d'ou venait le probleme vu que je n'avais pas la possibilité d'utiliser le mode pas a pas (n'ayant pas VB6 d'installé), j'ai généré un fichier txt dans lequel je trace l'avancé du programme. C'est comme ca que j'en suis venu a comprendre que la lecture du fichier csv fichait tout en l'air.
Voici un extrait de mon fichier txt généré (sur les 2 environnements différents).
Environnement 1 (environnement OK):
F1 colonne 1, F2 colonne 2, on retrouve la valeur 153 dans la colonne F1 et la valeur 21-20 dans la colonne F2 pour la premiere ligne. A savoir qu'il y a 21 colonnes donc F1-F21.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Source SELECT * FROM Extract.csv WHERE [F2] Is Not Null ORDER BY [F2] Matches.count est : 1 La valeur suivante a bien été recueillie 21 Bookmark : 1 Field Name: F1 Field Value: 153 Field Name: F2 Field Value: 21-20
Et cela sur 117 lignes, car il y a 117 lignes dans mon fichiers .csv.
Environnement 2 (environnement ou cela ne marche pas):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Source SELECT * FROM Extract.csv WHERE [F2] Is Not Null ORDER BY [F2] Matches.count est : 0 L4 :Bookmark : 1 Field Name: F1 Field Value: 1007;34-42;RA;A;1;A429;Multi;1;1;No;RA 1;LRU;XCVR-RA Field Name: F2 Field Value: 1;1;0x0043;standard;0x0007;N/A;10.142.16.7;SCI_BITE_A429_OUT_1_1_1;N/A
Maintenant sur le second environnement ou cela ne marche pas, on s'apercoit que dans la colonne F1 on récupère 13 valeurs, et dans la colonne F2 8 valeurs. La par contre, il n'y a que 2 colonnes et non 21.
J'en suis venu a comprendre que cela venait de la lecture du fichier. En fait si la fin du champs F1 se termine sur "XCVR-RA", c'est parce que cette ligne contient une ",". Il semblerait donc que dans cette environnement la gestion des fichiers .csv se fait sur la "," et non sur la valeur habituelle du ";".
Dans ce fichier on ne récupere que 14 lignes. Car il y a 14 lignes dans mon fichiers de 117 lignes avec des ",".
J'ai donc pensé que cela venait d'une dll qui ne serait pas a jour, mais je ne sais vraiment pas vers laquelle me tourner =(
Je ne veux pas m'amuser a modifier les dll au petit bonheur la chance. J'ai donc crée une variable d'environnement utilisateur "Path=.;" qui permet d'indiquer au PC lorsqu'il recherche une DLL, de rechercher dans le répertoire courant (indiqué par le "."). j'ai mis les dll suivantes dans mon répertoire courant qui contient le .exe de mon application:
user32.dll
secur32.dll
oleaut32.dll
rpcrt4.dll
ntdll.dll
ole32.dll
msvcrt.dll
msvcrt20.dll
msvbvm60.dll
kernel32.dll
gdi32.dll
advapi32.dll
vb6fr.dll
Concernant le choix de ces dll, j'ai utilisé le dependency walker sur le .exe de l'environnement 1, et j'ai regardé celles utilisées.
C'est la première fois que je suis confronté a un tel probleme, je m'y prend peut etre mal vis a vis de la solution a y apporter et suis tout ouïe.
Merci par avance pour le temps que vous aurez consacré a lire ce message, en espérant ne pas avoir fait d'entorse au règlement du forum sur la syntaxe des messages.
Partager