Bonjour,

Voilà mon soucis, j'ai un fichier composé de plusieurs lignes (sans déconner) qui elles-mêmes sont composées de plusieurs champs, chacune de ces lignes doivent être chargées dans une table et chacun de ces champs dans ces lignes correspond à un champ dans la table.
Ces champs sont délimités par deux points-virgules, exemple : ;"abc";. Un champ peut être de deux types, soit un entier, ex : ;123;, soit une chaîne de caractère, ex : ;"abc";, comme vous pouvez le voir ce dernier type de champ est délimité par deux guillemets.
Les utilisateurs ont la possibilité de mettre un peut ce qu'ils veulent dans ce type de champ et on ne peut changer ça, il est donc possible de se retrouver avec un champ tel que celui-ci : ;"ab"c";, le traitement d'insertion va alors penser que la chaîne de caractère est la suivante : ;"ab" et planter.
De plus, un champ de ce type peut être sur plusieurs lignes, exemple :
;"abc
ab
c";


Ce que je souhaite faire est de supprimer tous les guillemets en trop qui peuvent se trouver dans ces chaînes, en reprenant les deux exemples ci-dessus, pour le premier la chaîne initiale : ;"ab"c"; doit devenir celle-ci ;"abc"; et la deuxième chaîne :
;"abc
""
ab"
c";


doit devenir celle-ci :
;"abc
ab
c";


donc suppression des guillemets et de la ligne vide.

Et il y a encore pleins d'autres cas différents que j'arrive plus ou moins à gérer mais c'est une vraie usine à gaz avec des conditions partout...mais je vois pas comment le gérer autrement.

Selon vous quelle serait la meilleure méthode à adopter ? Les expressions régulières (je connais pas vraiment) peuvent-elles gérées ce genre de cas ?

Merci.