Bonjour
je converti mon fichier xls en csv dans une application Windev avec le code ci-dessous
le format est bon mais les séparateurs sont des points virgules comment les transformer en virgule ????????

xl est un objet OLE dynamique = ObjetActif("Excel.Application")
fichierXLS est une chaîne
fichierXLS = "c:\MonFichier.xls "
SI xl=Null ALORS xl=allouer un objet OLE "Excel.Application"
xl>>Visible=Faux // Excel n'apparait pas à l'écran
xl>>displayAlerts=False
xl>>WorkBooks>>Open(fichierXLS )
fichierXLS=ExtraitChaîne((fichierXLS),1,".xls")+ ".xlcsv"
xl>>DisplayAlerts = True
xl>>ActiveWorkBook>>saveAs( fichierXLS,6)
xl>>ActiveWorkBook>>Close(Faux)
xl>>Quit()
libérer xl
j'ai cherché mais Je n'ai pas trouvé de réponse a mon problème un petit coup de main me serais bien utile
merci
Modifié par Bujkilla05 (15 Jan 2020 - 00:23)
Franchement si tu me demandes si je peux avoir une ouverture d'un php avec un "<!" je te dirais que c'est un "<?" non ??
Alors que tout les CVS windows ont comme séparateurs un ";" ....
comment veux-tu qu'il en soit autrement Smiley confused
C'est sur que c'est logique d'avoir des ; pour un truc qui s'appelle comma-separated values Smiley cligne Il arrive qu'on ait besoin d'avoir un séparateur différent pour faire des imports par exemple.

@Bujkilla05, je ne connait pas windev mais un csv c'est un simple fichier texte qui ressemble à ça :
Robert;Dupont;rue du Verger, 12;…
"Michel";"Durand";" av. de la Ferme, 89 ";…

donc c'est assez simple de remplacer tes ; ensuite (attention tu peux aussi avoir des points virgules dans tes valeurs entre guillemets)

PS : tu trouveras peu de gens voire personne à faire du windev ici Smiley cligne
bacasable a écrit :
C'est sur que c'est logique d'avoir des ;

Ton exemple garde les ";" aprés l'intérieur on s'en moque si non pourquoi ne pas éditer un bnp avec notepad++ et l'appeler jpg ??
@Jean-Pierre-Bruneau comma ça veut dire virgule et c'est valable de l'utiliser comme séparateur. C'est tout a fait faisable de modifier un csv à la main ou via un script, ce ne sont pas des fichiers compressés comme les images. Si tu ne veut pas apporter ton aide autrement que par des affirmations hasardeuses, abstiens-toi, c'est beaucoup mieux pour tout le monde. Smiley cligne
Modifié par bacasable (15 Jan 2020 - 10:18)
Merci bacasable pour tes commentaires je vais chercher sur un autre forum pour trouver un script qui transformeras les points virgules en virgules
merci
Dans la version originelle (US) du csv ce sont bien des virgules
Mais les anglo-saxons ne respectent pas le standard international de présentation des nombres ils écrivent 1.25 alors que le standard est 1,25
Ceux qui ont fait la version française d’Excel ont décidé de garder la notation des nombres à la française et ont remplacé les , de la version originelle par des ;
Par exemple une formule Excel : =MAX(1,5;2,7;3,8) au lieu de =MAX(1.5,2.7;3.8)
Et de même dans csv les , sont devenues des ;
Mais la plupart des outils qui lisent du csv ne tiennent compte que de la version US
C’est à toi de faire une bidouille sur le fichier, par exemple si on n’est sûr qu’il n’y a pas de nombre décimal dans le fichier ni d’adresse normalisée à la française ("27, rue Pierre Dupont" il suffit de remplacer les ; par des , mais la plupart du temps c’est plus compliqué...
Une autre solution est d’utiliser la version US d’Excel
Désolé
bacasable a écrit :
@Jean-Pierre-Bruneau comma ça veut dire virgule et c'est valable de l'utiliser comme séparateur.


Oui l'Ami, je suis assez vieux pour avoir vécu l'apparition du CSV Smiley cligne
inutile d'en tirer de méchantes remarques à mon égard...

"Comma-separated values, connu sous le sigle CSV, est un format texte ouvert représentant des données tabulaires sous forme de valeurs séparées par des virgules. Ce format n'a jamais vraiment fait l'objet d'une spécification formelle. Toutefois, la RFC 41801 décrit la forme la plus courante et établit son type MIME « text/csv », enregistré auprès de l'IANA."


J'ai juste voulu souligné que l'abandon de la "," pour le ";" faisait que bien des applications possédant un import/export en CVS exigent le ";" c'est bien stupide mais c'est ainsi, cela en attendant ne nous facilite pas la tache, et il en va de même pour les techniques si agréables qui nous arrivent pour nos sites web, et qui sont purement et simplement traitées différemment selon l'explorateur du visiteur !

Voila l'Ami, je veux toujours aider de mon mieux et sans doute comme tu le souligne mal-adroitement parfois...
Une voie de recherche :
Installer LibreOffice (gratuit)
Lire le ficher csv
Utiliser les paramètres d’export csv de LibreOffice pour réexporter au format csv avec virgule

Je n’ai pas testé
merci pour vos réponses
j'ai rajouté le code ci-dessous a la fin de mon code
cela fonctionne correctement

sChaineTemp est une chaîne = fChargeTexte("C:\fichier.csv")
sChaineTemp = Remplace(sChaineTemp,ChaineARemplacer,ChampDeRemplacement)
fSauveTexte("C:\fichier.csv",sChaineTemp)