|
| Problème lors de import fichier texte avec himportetexte |
| Iniciado por FORNARI / EURL FORNA, 23,nov. 2019 19:36 - 15 respuestas |
| |
| | | |
|
| |
Miembro registrado 36 mensajes |
|
| Publicado el 23,noviembre 2019 - 19:36 |
Bonjour,
je voudrais importer un fichier texte dont la première ligne contient le nom des colonnes et les lignes suivantes les données. Ce fichier texte est généré par un hexportcsv.
Voici le code de l'export
HExporteCSV(Facture,"D:\Facture.CSV",hExpCreation)
Et voici le code de l'import :
SI HImporteTexte(Facture1,"D:\"+sfichier,hImpIgnorePremièreLigne+hValDéfaut) ALORS Info("import ok") SINON Info("erreur lors de l'import") FIN ou sfichier = "Facture.CSV"
Lors de l'exécution il ne génère aucune erreur et n'insère aucune ligne dans la table Facture1 qui est une copie de la table origine Facture.
Je ne vois pas où se trouve l'erreur.
Est-ce que quelqu'un est déjà tombé sur ce problème?
Merci d'avance pour votre aide.
Christian |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.321 mensajes |
|
| Publicado el 24,noviembre 2019 - 09:41 |
Bonjour,
Essayes :
SI HImporteTexte(Facture1,"D:\"+sfichier,"",hImpIgnorePremièreLigne+hValDéfaut) ALORS Info("import ok") SINON Info("erreur lors de l'import") FIN
-- Bon dev, Jean-Pierre |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 143 mensajes |
|
| Publicado el 24,noviembre 2019 - 11:12 |
Bonjour,
J'ai cherché, mais pas trouvé pour Export-Import en CSV...
Par contre le code suivant fonctionne
HExporteXLS(AppCodes,"D:\Facture.xls",hExpCreation)
lsdAppCodes1 est une Source dede Données HDéclareExterne("D:\AppCodes1.fic",lsdAppCodes1,"****")
SI HImporteXLS(lsdAppCodes1,"D:\Facture.xls",1,"",hImpIgnorePremièreLigne+hImpCreation) ALORS Info("import ok") SINON Info("erreur lors de l'import") FIN
Si cela peut t'aider
Bon dev
-- Yann Wagner
WHY-GemA sàrlMensaje modificado, 24,noviembre 2019 - 11:16 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 36 mensajes |
|
| Publicado el 25,noviembre 2019 - 14:26 |
Bonjour,
J'ai essayé cette méthode mais j'ai le même soucis. Il exécute la commande himporteTexte et renvoi vrai mais il n'y a aucune ligne dans le fichier Facture1.
J'ai fais un test en ouvrant le fichier avec la fonction fouvre et la ligne qui est lu donne un format étrange. Voici la procédure de lecture :
resOuverture est un entier slignelue est une chaîne tabLigne est un tableau de chaînes resOuverture=fOuvre("D:\"+sfichier,foLecture) SI resOuverture=-1 ALORS Erreur(ErreurInfo(errMessage)) SINON BOUCLE slignelue = fLitLigne(resOuverture) SI ErreurDétectée ALORS Erreur(ErreurInfo()) SORTIR FIN SI slignelue = EOT ALORS SORTIR tabLigne=ChaîneDécoupe(slignelue,",") FIN fFerme(resOuverture) ToastAffiche("Lecture du fichier terminée") FIN
Si l'on regarde ce qui se trouve dans la variable slignelue voici ce que cela donne

Donc un format avec des <0> entre chaque caractères.
Si j'ouvre le fichier sous un éditeur de texte les caractère <0> n'apparaissent pas.
Si quelqu'un a un idée je suis preneur.
Merci pour votre aide |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 36 mensajes |
|
| Publicado el 25,noviembre 2019 - 14:29 |
J'ai fais le test avec exportxls et importxls cela fonctionne bien effectivement mais j'aimerai savoir pourquoi cela ne fonctionne pas avec des fichiers texte que l'on a exporter.
Merci pour ses idées.
christian |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.321 mensajes |
|
| Publicado el 25,noviembre 2019 - 17:11 |
Bonjour,
1. Avez-vous ouvert le fichier avec Notepad pour vérifier son format ? 2 Essayez de rajouter les options hImpIgnoreLigneInvalide et hImpIgnoreRubriqueVide.
-- Bon dev, Jean-Pierre |
| |
| |
| | | |
|
| | |
| |
| Publicado el 25,noviembre 2019 - 17:25 |
Bonjour,
cela ressemble fort à de l'unicode... |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 36 mensajes |
|
| Publicado el 25,noviembre 2019 - 18:33 |
bonsoir,
Je viens de tester avec himpignoreLigneInvalide et himpIgnoreRubrique Vide et c'est le même résultat. Pas de ligne insérée dans la table. Par contre quand je fais :
resOuverture=fOuvre("D:\"+sfichier,foLecture+foUnicode) la valeur de slignelue est correct.

Est-ce que cela veut dire que le hexporteCSV crée un fichier au format unicode et que la fontion himporteTexte ne prend pas en charge les fichiers texte unicode?
Merci de vos réponse.
Christian |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 143 mensajes |
|
| Publicado el 26,noviembre 2019 - 16:24 |
Bonjour,
J'ai copié le fichier Facture.csv en "non" Unicode, et cela ne fonctionne toujours pas.
Je transmettrai ce cas au service technique....
Bon Dév
-- Yann Wagner
WHY-GemA sàrl |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.330 mensajes |
|
| Publicado el 27,noviembre 2019 - 09:17 |
Salut Fornari,
Tu as oublié de mettre la définition des séparateurs dans tes paramètres, hors ceux-ci ne sont pas optionnels (seul les options et la jauge sont optionnels)
Résultat> = HImporteTexte("Nom du fichier" , "Chemin complet du fichier texte" , "Liste des rubriques" , "Séparateurs" [, "Options" [, "Jauge"]])
Donc essaye avec ceci:
sFichier est une chaîne = "D:\Facture.csv" sSepColonne est une chaîne = "," sSepChaine est une chaîne = """" sSepLigne est une chaîne = RC sSepDecimal est une chaîne = "." sSepCompatibilite55 est une chaîne = Caract(127) sSeparateurs est une chaîne = ChaîneConstruit("%2%1%3%1%4%1%5", sSepCompatibilite55, sSepColonne, sSepChaine, sSepLigne, sSepDecimal)
SI HImporteTexte(Facture1 , sFichier , "", sSeparateurs, hImpIgnorePremièreLigne + hImpOEM2ANSI + hValDéfaut + hImpIgnoreLigneInvalide, JAUGE_Progression) ALORS Info("Import Ok.") SINON Erreur("Erreur lors de l'import.", "", ErreurInfo()) FIN
Bon Dev Daryl
-- http://www.concept4u2.comMensaje modificado, 27,noviembre 2019 - 09:20 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 36 mensajes |
|
| Publicado el 27,noviembre 2019 - 10:52 |
Je viens de faire le test avec ton code Daryl et le soucis est le même. Pas de ligne intégrée dans la table. L'import est Ok pourtant.
Christian |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.330 mensajes |
|
| Publicado el 27,noviembre 2019 - 13:39 |
Salut Fornari,
C'est bizarre, je viens de faire un test et je n'ai eu aucun problème. Pas d'erreur lors de l'exécution de HImporteTexte() et tous les enregistrements de mon fichier CSV son bien dans le fichier HFSQL Que le séparateur soit ";" ou TAB c'est passé chaque fois correctement.
Je suis en version 24.0.140.2 - 77f
Bon Dev Daryl
-- http://www.concept4u2.com |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 36 mensajes |
|
| Publicado el 28,noviembre 2019 - 11:55 |
Je viens de faire ce test et j'ai le même résultat
voici le code complet que j'utilise :
HExporteCSV(Facture,"D:\Facture.CSV","",",",hExpCreation) sSepColonne est une chaîne = "," sSepChaine est une chaîne = """" sSepLigne est une chaîne = RC sSepDecimal est une chaîne = "." sSepCompatibilite55 est une chaîne = Caract(127) sSeparateurs est une chaîne = ChaîneConstruit("%2%1%3%1%4%1%5", sSepCompatibilite55, sSepColonne, sSepChaine, sSepLigne, sSepDecimal)
SI HImporteTexte(Facture1 , "D:\Facture.CSV" , "", sSeparateurs, hImpIgnorePremièreLigne + hValDéfaut +hImpOEM2ANSI+ hImpIgnoreLigneInvalide) ALORS Info("Import Ok.") SINON Erreur("Erreur lors de l'import.", "", ErreurInfo()) FIN
j'ai essayé en indiquant le nom des colonnes sur l'import et j'ai le même résultat.
Voici la description des tables facture et facture1


Voici le fichier texte qui est généré par l'export :
"IDFacture","DateFacture","TotalHT","TotalTTC","NuméroInterneFacture","IDClient","IDCommande","IDAdresseFacturation","Acquittée","TotalTVA","SaisiPar","SaisiLe","Observations","Remise","IDModeRèglement" "1","20191112","20","30","1","1","1","1","1","10","moi","20191112","pp","0","1" "2","20191113","50","52","2","2","1","2","0","2","mmmm","20191113","mmm","0","2"
Je ne comprend pas où se trouve le soucis.
Je développe sous windev 24 01f240077f
Merci d'avance pour votre aide
christian |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.330 mensajes |
|
| Publicado el 28,noviembre 2019 - 15:22 |
Salut Fornari,
Cela me semble normal maintenant que tu n'arrives pas à importer ton fichier CSV 
1. Facture1.IDFacture => Devrait être un entier sur 8 octets 2. L'ordre des colonnes du fichier CSV ne contient pas le même ordre que celle du fichier Facture1
Exemple: - NuméroInternedeFacture est en 5ème position alors qu'elle devrait être en 2ème position - IDClient est en 6ème position alors qu'elle devrait être en 4ème position - Etc.
Bon Dev Daryl
-- http://www.concept4u2.com |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 36 mensajes |
|
| Publicado el 29,noviembre 2019 - 13:40 |
Bonjour,
J'ai refais le test avec une copie exact de la table.
Voici la description des 2 tables


Voici le code utilisé :
HExporteCSV(Facture,"D:\Facture.CSV","",",",hExpCreation) sSepColonne est une chaîne = "," sSepChaine est une chaîne = """" sSepLigne est une chaîne = RC sSepDecimal est une chaîne = "." sSepCompatibilite55 est une chaîne = Caract(127) sSeparateurs est une chaîne = ChaîneConstruit("%2%1%3%1%4%1%5", sSepCompatibilite55, sSepColonne, sSepChaine, sSepLigne, sSepDecimal)
SI HImporteTexte(Facture2 , "D:\Facture.csv" , "", sSeparateurs, hImpIgnorePremièreLigne + hValDéfaut +hImpOEM2ANSI+ hImpIgnoreLigneInvalide) ALORS Info("Import Ok.") SINON Erreur("Erreur lors de l'import.", "", ErreurInfo()) FIN
Et toujours rien dans la table Facture2.
Merci pour votre aide.
Christian |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.330 mensajes |
|
| Publicado el 02,diciembre 2019 - 10:59 |
Salut Fornari,
Maintenant dans Facture2, ton identifiant est automatique (ce qui n'était pas le cas avec Facture1) du coup tu décale toutes tes valeurs de ton export et donc plus rien ne correspond.
Le fait que la structure de Facture2 est identique à Facture, n'est pas le plus important, ce qu'il faut impérativement c'est que l'ordre de tes colonnes de ton fichier CSV soit dans le même ordre que ton fichier Facture2, ou alors tu indique dans l'import l'ordre des données que tu veux avoir.
[Liste des rubriques] : chaîne de caractères (AVEC guillemets) Liste des noms des rubriques du Fichier texte. Les noms peuvent être délimités par des simples quotes ET sont séparés par des virgules OU RC. Les noms des rubriques de type clé composées sont ignorées. SI ce paramètre n'est pas précisé OU correspond à une chaîne vide, toutes les rubriques sont importées (sauf les clés composées) DANS l'ordre physique de Description.
Cordialement Daryl
-- http://www.concept4u2.comMensaje modificado, 02,diciembre 2019 - 11:00 |
| |
| |
| | | |
|
| | | | |
| | |
|