|
Page : 1 2 Page Précédente | |
Auteur | Sujet : [perl] Traitement de fichier .csv |
Publicité | Posté le 12-06-2010 à 21:15:48 |
grao The visitor | Finalement j'ai résolu mon problème: je lis mon fichier et je le modifie à la volée pour supprimer les ; à l'aide de:
Maintenant mon soucis et au niveau de l'encodage je pense: lorsque j'affiche le fichier temp avec Tie::Handle::CSV il s'arrête à la première ligne et affiche un � à la place des accents. Le problème est que je ne peux pas me permettre de remplacer les caractères accentués Message édité par grao le 12-06-2010 à 22:08:43 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
gilou ModérateurModzilla | Bonsoir,
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
grao The visitor | Une solution simple: coder sous windows --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
grao The visitor |
--------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
gilou ModérateurModzilla |
Euh, les modules CPAN sont en général compatibles windows et linux. Donc ce n'est clairement pas une raison valable.
Sauf qu'a partir du moment ou vous faites usages d'un fichier temporaire, l'usage d'un Tie devient complètement inutile (et est couteux) Message édité par gilou le 12-06-2010 à 23:45:44 --------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
grao The visitor | L'optimisation n'est clairement pas un de mes objectifs (enfin pour le moment). Je veux bien éviter d'utiliser Tie::Handle::CSV mais comment accéder à un champ en particulier à partir de mon fichier temp? Message édité par grao le 12-06-2010 à 23:47:19 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
gilou ModérateurModzilla | Il suffit de vous inspirer de ce que j'avais donné en lien:
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
grao The visitor | Merci beaucoup EDIT: en regardant plus attentivement le lien au dessus, il semblerait qu'il y ait de quoi résoudre tout mes problèmes... Message édité par grao le 13-06-2010 à 12:06:33 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
grao The visitor | En fait tout vient du soft qui sort le csv, il respecte pas le standard. Notez le " en début de ligne et le """ sur le dernier champs. Message édité par grao le 13-06-2010 à 13:49:09 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
Publicité | Posté le 13-06-2010 à 12:30:28 |
grao The visitor | Pour l'encodage j'ai à moitié solutionné le problème: quand je mets un encodage windows style windows-1258 à peu près la moitié du fichier passe (y compris certaines lignes avec des accents) mais pas l'autre qui comprend pourtant les mêmes lettres accentuées EDIT: ce n'était pas un problème d'encodage: dans une des lignes il y avait un ; qui se baladait. Du coup je supprime tous les ; du fichier et il me parse tout le fichier tranquille. J'ai plus qu'à faire mes traitements. Message édité par grao le 13-06-2010 à 14:15:56 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
gilou ModérateurModzilla | Une Chimay!!
Message cité 1 fois Message édité par gilou le 13-06-2010 à 14:52:51 --------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
grao The visitor |
Message édité par grao le 13-06-2010 à 15:33:17 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
grao The visitor | En revanche il y a un truc que je pige pas avec Text::CSV après avoir parsé le fichier je souhaite afficher un champs en particulier seulement il met l'intégralité de la ligne dans $columns[0]. $columns[1] et suivant sont vides. Message édité par grao le 13-06-2010 à 15:37:46 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
gilou ModérateurModzilla | Tu peux copier ici Message édité par gilou le 13-06-2010 à 15:58:15 --------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
grao The visitor | J'ai trouvé la solution ultime: Virer tous les " de mon fichier à l'aide d'un s/"//g;
Message édité par grao le 13-06-2010 à 16:10:33 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
grao The visitor | Bon c'est pas la solution miracle parce que dans certains champs j'ai du texte avec une ou des , du coup ça décale mes $columns[x] et fait foirer mes tests. Message édité par grao le 13-06-2010 à 16:54:15 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
gilou ModérateurModzilla | A priori, je ferais:
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
grao The visitor | Voici des lignes (dont j'ai changé les valeurs biensur): Je pense que le problème vient du parsing: le premier champs fait chier parce qu'il commence par " mais il en manque un à la fin, en fait il est à la fin de la ligne Mon code:
Voila ce que j'ai dans mon fichier de test:
Idéalement j'aimerais quelque chose du style: Par ailleurs si je fais un print $columns[0] il me renvoie toute la ligne au lieu du premier champs. C'est pour ça que je pense que tout le problème vient de ce premier champs. Si je suis pas clair faut le dire Message cité 1 fois Message édité par grao le 13-06-2010 à 18:10:18 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
gilou ModérateurModzilla |
Il y a que 5 champs dans le header et 6 dans les lignes, est-ce bien normal, ou une erreur a la recopie?
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
gilou ModérateurModzilla | Sinon, en rajoutant un champ 6 dans le header, ce script passe assez bien sur votre exemple:
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
grao The visitor | J'avais donné les champs pour exemple, j'avais pas fais attention au nombre
Message édité par grao le 13-06-2010 à 20:44:49 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
gilou ModérateurModzilla | Ça manque de close après les open, ce code...
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
grao The visitor | Ils y sont, j'ai juste pas copié jusqu'en bas --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
grao The visitor | Je voudrais savoir si il existe un moyen de n'exécuter une instruction dans une boucle qu'une seule fois. ex: Je pourrais stocker un boolean et faire un test dessus à chaque itération mais je me demande si il existe un mot clé du langage. Message édité par grao le 16-06-2010 à 10:08:50 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
gilou ModérateurModzilla | C'était écrit plus haut:
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
grao The visitor |
"Liste des groupes" n'est pas contenu dans mon fichier en lecture, c'est moi qui l'ajoute dans ma sortie pour faire la mise en page. Sauf que je ne veux pas afficher: Mais: Le tout sans mettre print "Liste des groupes"; avant la boucle parce que je veux mettre un titre pour chaque champ. Message cité 1 fois Message édité par grao le 16-06-2010 à 11:59:32 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
gilou ModérateurModzilla |
Il faudra m'expliquer pourquoi --------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
grao The visitor | Effectivement, OTAN pour moi --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
grao The visitor | J'ai quasiment fini: seulement j'ai un soucis avec l'envoi de mail.
Message cité 1 fois Message édité par grao le 17-06-2010 à 11:36:35 --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
grao The visitor |
--------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
nono 63 | Si je peux me permettre, je viens me greffer sur la discussion.
--------------- Mon topic Achat/ventes : http://forum.hardware.fr/hfr/Achat [...] 2496_1.htm |
grao The visitor | Gilou j'ai un soucis avec la vaiable $.
--------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
gilou ModérateurModzilla | C'est une variable propre au filehandle, pas a une boucle donnée, qui donne le numéro de ligne lue.
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
gilou ModérateurModzilla |
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
grao The visitor |
--------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
nono 63 |
--------------- Mon topic Achat/ventes : http://forum.hardware.fr/hfr/Achat [...] 2496_1.htm |
gilou ModérateurModzilla | A l'oeil nu, le regexp est faux.
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
nono 63 | C'est exact --------------- Mon topic Achat/ventes : http://forum.hardware.fr/hfr/Achat [...] 2496_1.htm |
grao The visitor | Sinon j'ai testé les tables de hashage en Perl, c'est plutôt performant... --------------- Recherche affiche de GITS Arise 3 et 4, faire offre. |
Publicité | Posté le |
Page : 1 2 Page Précédente |
Sujets relatifs | |
---|---|
[perl] envoie de trap SNMPv3 | [RESOLU] [SHELL] extraction et reformattage des données d'un fichier |
[Resolu] Ouvrir un fichier ".csv" par macro proprement | Enregistrement d'un fichier texte dans une procédure récursive |
Parseur XML (fichier récupéré à partir d'un web service) | enigme de \n en perl |
problème de création de fichier dll sous 64 bits | tester l'existence d'un fichier et plus |
Plus de sujets relatifs à : [perl] Traitement de fichier .csv |