Aller au contenu

getfilef to UTF-8


willy95

Messages recommandés

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.

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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:

Lien vers le commentaire
Partager sur d’autres sites

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é