willy95 Posté(e) le 3 février 2017 Posté(e) le 3 février 2017 Bonjour, j'aimerai savoir comment écrire un fichier directement en UTF-8 ? J'ai beau chercher comme à mon habitude mais je bute sévère, c'est si complexe que cela ? je pars sur une base classique d'écriture de mes données dans un txt ANSI comme ceci : (setq file (getfiled "Créer un fichier" "" "txt" 1) ) (setq file (open file "w") (write-line (strcat "</immeuble>") file) (close file) Merci par avance pour vos réponses qui je l'espère grandement m'aiderons beaucoup.
didier Posté(e) le 3 février 2017 Posté(e) le 3 février 2017 Coucou pour atteindre quel but as-tu besoin d'écrire en UTF-8 ?à première vue je ne vois pas d'intérêtmais tu vas venir nous renseigner... amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
willy95 Posté(e) le 6 février 2017 Auteur Posté(e) le 6 février 2017 Coucou pour atteindre quel but as-tu besoin d'écrire en UTF-8 ?à première vue je ne vois pas d'intérêtmais tu vas venir nous renseigner... amicalement Bonjour, J'exporte des données récupérés dans autocad pour un export XML pour les Notaires, ils importent ce fichier XML au format UTF-8 dans leurs base.Actuellement, quand j'écris en ANSI le fichier n'est pas reconnu en tant que XML, il faut obligatoirement que je l'enregistre après mon export à chaque fois au format UTF-8 dans le bloc-note préalablement sinon il ne le reconnait pas en tant que xml.C'est pourquoi je cherche à modifié mon code pour qu'il enregistre directement le fichier exporté en UTF-8.Merci pour votre aide si précieuse.
lecrabe Posté(e) le 6 février 2017 Posté(e) le 6 février 2017 Hello À priori si tu installes Notepad ++, tu verras qu'il est capable de changer l'encodage... ANSI, UTF-8, UTF-16 Ouvrir, Changer Encodage, Enregistrer sous... Bye, lecrabe Autodesk Expert Elite Team
(gile) Posté(e) le 6 février 2017 Posté(e) le 6 février 2017 Salut, Tu peux essayer ça (pas testé en profondeur) (defun writeUTF-8 (text filename / stream) (if (setq stream (vlax-create-object "ADODB.Stream")) (vl-catch-all-apply '(lambda () (vlax-put stream 'Type 2) (vlax-put stream 'Charset "utf-8") (vlax-invoke stream 'Open) (vlax-invoke stream 'WriteText text 0) (vlax-invoke stream 'SaveToFile filename 2) ) ) ) (and stream (vlax-release-object stream)) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
willy95 Posté(e) le 6 février 2017 Auteur Posté(e) le 6 février 2017 Oui effectivement c'est bien comme cela que je fais, mais j'aimerai bien pourvoir l'exporter directement au format UTF-8, pour ne pas avoir à faire cette manipulation même si simpliste quelle soit. :) J'imagine que cela doit être complexe vu vos réponses.Merci pour votre compréhension. Merci Gile je vais essayer d'intégrer ces lignes de code.
willy95 Posté(e) le 6 février 2017 Auteur Posté(e) le 6 février 2017 Effectivement ce doit être la bonne piste mais je suis pas assez bon pour l'intégrer correctement dans mon code, j'ai bien essayé plusieurs manière qui sont restés sans résultat , peux tu m'aider ? (setq file (getfiled "Créer un fichier" "" "txt" 1) ) (setq file (open file "w") (write-line (strcat "</immeuble>") file) (close file)
(gile) Posté(e) le 6 février 2017 Posté(e) le 6 février 2017 Tout simplement comme ça : (if (setq file (getfiled "Créer un fichier" "" "xml" 1)) (writeUTF-8 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> <Liens> <Lien Site=\"CADxp\" Url=\"http://cadxp.com\" /> <Lien Site=\"gileCAD\" Url=\"http://gilecad.azurewebsites.net\" /> </Liens>" file ) ) avec la routine writeUTF-8 chargée bien sûr... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
willy95 Posté(e) le 10 février 2017 Auteur Posté(e) le 10 février 2017 Merci Gile, ça marche presque comme je souhaite :D mais j'aimerai incorporer des valeurs de variable à l'intérieur du texte et la je bloque à nouveau. (setq Variable1 "Kiki") (if (setq file (getfiled "Créer un fichier" "" "xml" 1)) (writeUTF-8 "<?xml version=\"1.0\" encoding=\"utf-8\" ?> Kiki <Liens> <Lien Site=\"CADxp\" Url=\"http://cadxp.com\" /> <Lien Site=\"gileCAD\" Url=\"http://gilecad.azurewebsites.net\" /> </Liens>" file ) ) Merci par avance pour votre aide.
(gile) Posté(e) le 10 février 2017 Posté(e) le 10 février 2017 Salut, La routine writeUTF-8 requiert 2 arguments de type chaîne de caractère (STR) le premier est le texte à écrire dans le fichier, le second, le chemin du fichier. Le texte que je donnais dans l'exemple n'est qu'un exemple. Il n'est pas du tout nécessaire de l'intégrer. Si tu veux que le contenu de ton fichier soit :"Mon nom est : "Tu fais :(setq Variable1 "Kiki") (if (setq file (getfiled "Créer un fichier" "" "xml" 1)) (writeUTF-8 (strcat "Mon nom est : " variable1) file ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
willy95 Posté(e) le 13 février 2017 Auteur Posté(e) le 13 février 2017 Encore une fois : Merci Gile,C'est vrai que j'avais la réponse devant les yeux et je ne la voyais pas, je ne pensais pas pouvoir utilisé "Strcat", ça marche niquel, merci beaucoup.Maintenant je complète encore plus loin mon code qui je l'espère marchera à merveille une fois terminé. Encore merci et à la prochaine :blink:
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant