Aller au contenu

Messages recommandés

Posté(e)

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.

Posté(e)

Coucou

 

pour atteindre quel but as-tu besoin d'écrire en UTF-8 ?

à première vue je ne vois pas d'intérêt

mais 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.

Posté(e)

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

Posté(e)

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

Posté(e)

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.

Posté(e)

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)

Posté(e)

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

Posté(e)

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.

Posté(e)

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

Posté(e)

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:

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité