PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Import d'un fichier .csv
Import d'un fichier .csv
Débuté par WBBOM, 19 juin 2017 09:10 - 4 réponses
Posté le 19 juin 2017 - 09:10
Bonjour,

Je fais appel à vous car j'aimerais importer des données de mon fichier .csv dans ma bdd.
Le code ci-dessous fonctionne pour les fichiers .txt que j'importe dans ma bdd.
J'ai donc fait quelques modifications pour que windev comprenne que c'est un fichier excel.
Mais cela ne fonctionne pas.
J'ai mis des point d'arrêt pour comprendre ce qu'il se passe :

NomFichier=ComplèteRep(Repertoire)+"MonFichier.csv"
nFic = fOuvre(NomFichier, foLectureEcriture)

SI nFic = - 1 ALORS
Info("Le fichier est introuvable.")
SINON

nFic=HNbEnr(BDD_Client)
HCreation(BDD_Client)
chaîne = fLitLigne(nFic) //on lit une ligne
Tant que chaîne<> EOT //Tant que je ne suis pas à la fin du fichier
HRAZ(BDD_Client)
BDD_Client.NomClient=SansEspace(ExtraitChaîne(sMaChaîne,1,";",DepuisDébut))
BDD_Client.PrenomClient=SansEspace(ExtraitChaîne(sMaChaîne,2,";",DepuisDébut))
BDD_Client.AdrClient=SansEspace(ExtraitChaîne(sMaChaîne,3,";",DepuisDébut))
BDD_Client.TotalAchat=SansEspace(ExtraitChaîne(sMaChaîne,4,";",DepuisDébut))
HEcrit(BDD_Client,HNbEnr(BDD_Client)+1)
chaîne=fLitLigne(nFic) //On passe à la ligne suivante
FIN
fFerme(nFic)
HRéindexe(BDD_Client,hNdxNormal,FenetrePrincipale)
FIN


Je vois que le répertoire est le bon, NomFichier est également correcte.
Cependant mon code s'arrête au message d'erreur "Info("Le fichier est introuvable.")" et je ne comprend pas pourquoi puisque mon fichier
existe bien dans le répertoire. Pouvez-vous m'aider svp ?
Membre enregistré
326 messages
Popularité : +15 (19 votes)
Posté le 19 juin 2017 - 15:44
Bonjour.
Utilise :
Erreur("Impossible d'ouvrir le fichier : " + NomFichier, ErreurInfo()) au lieu de
Info("Le fichier est introuvable.")
-> tu sauras pourquoi cela plante car
"Je vois que le répertoire est le bon, NomFichier est également correcte." c'est ton impression et non la réalité.
Lire la documentation -> le code retour -1 ne signifie pas uniquement que le fichier est introuvable ! Il peut être bloqué car tu l'as ouvert par exemple -> vu que tu l'ouvres en lecture/écriture cela plante !!!!

Michel.

PS : souvent le message d'erreur est suffisant pour comprendre le problème ...
Posté le 19 juin 2017 - 16:13
si fouvre te renvoi -1 c'est que le chemin n'est pas bon...

as tu essayé d'ecrire le chemin en dure pour tester ?

sinon,

petite correction sur chaine --> sMachaine , ça fonctionnera mieux

NomFichier=ComplèteRep(Repertoire)+"MonFichier.csv"
nFic = fOuvre(NomFichier, foLectureEcriture)

SI nFic = - 1 ALORS
Info("Le fichier est introuvable.")
SINON

nFic=HNbEnr(BDD_Client)
HCreation(BDD_Client)
chaîne = fLitLigne(nFic) //on lit une ligne
Tant que sMachaîne<> EOT //Tant que je ne suis pas à la fin du fichier
HRAZ(BDD_Client)
BDD_Client.NomClient=SansEspace(ExtraitChaîne(sMaChaîne,1,";",DepuisDébut))
BDD_Client.PrenomClient=SansEspace(ExtraitChaîne(sMaChaîne,2,";",DepuisDébut))
BDD_Client.AdrClient=SansEspace(ExtraitChaîne(sMaChaîne,3,";",DepuisDébut))
BDD_Client.TotalAchat=SansEspace(ExtraitChaîne(sMaChaîne,4,";",DepuisDébut))
HEcrit(BDD_Client,HNbEnr(BDD_Client)+1)
sMachaîne=fLitLigne(nFic) //On passe à la ligne suivante
FIN
fFerme(nFic)
HRéindexe(BDD_Client,hNdxNormal,FenetrePrincipale)
FIN
Posté le 19 juin 2017 - 18:12
Bonjour,
supprimez la ligne
nFic=HNbEnr(BDD_Client)
Posté le 26 juin 2019 - 10:41
Bonjour,

J'ai fait fonctionner votre code en remplacant HECRIT Par HAJOUTE et tout est fonctionnel.

Cordialement,