Encodage d'un fichier texte [Résolu]

nico_fip1 81 Messages postés mercredi 6 octobre 2004Date d'inscription 26 septembre 2006 Dernière intervention - 9 oct. 2004 à 20:31 - Dernière réponse : cs_mikl75 7 Messages postés lundi 20 janvier 2003Date d'inscription 8 décembre 2004 Dernière intervention
- 8 déc. 2004 à 18:27
Bonsoir,

Voici mon souci : j'ai fait une macro qui génére des fichiers textes, qui doivent être utilisés par un programme que j'écris sous Linux.
D'où, problème .....pour les caractères spéciaux ('éèà...)

Ce qui m'arrangerais, c'est que ma macro Excel fasse directement les fichiers au bon format... (==> Conversion en VBA )

Remarque : Sous Linux le codage utilisé est du UTF (à ma connaissance)

Merci pour votre aide

Nico
Strasbourg
France
Afficher la suite 

8 réponses

Meilleure réponse
cs_EBArtSoft 4530 Messages postés dimanche 29 septembre 2002Date d'inscription 23 décembre 2014 Dernière intervention - 9 oct. 2004 à 21:08
3
Merci
Petite fonction d'encodage UTF(8)

Function UTF8Encode(ByVal wText As String) As String
Dim vNeeded As Long
Dim vSize As Long
vSize = Len(wText)
vNeeded = WideCharToMultiByte(CP_UTF8, 0, StrPtr(wText), vSize, "", 0, 0, 0)
UTF8Encode = String(vNeeded, 0)
WideCharToMultiByte CP_UTF8, 0, StrPtr(wText), vSize, UTF8Encode, vNeeded, 0, 0
End Function

@+

E.B.

Merci cs_EBArtSoft 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Meilleure réponse
cs_EBArtSoft 4530 Messages postés dimanche 29 septembre 2002Date d'inscription 23 décembre 2014 Dernière intervention - 10 oct. 2004 à 19:56
3
Merci
Ce sera un fichier ASCII

Pour les def :

Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Private Declare Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, ByVal lpUsedDefaultChar As Long) As Long

Public Declare Function ntohl Lib "ws2_32.dll" (ByVal netlong As Long) As Long
Public Declare Function ntohs Lib "ws2_32.dll" (ByVal netshort As Integer) As Integer
Public Declare Sub RtlMoveMemory Lib "kernel32" (Destination As Any, Source As Any, ByVal Length As Long)

Private Const CP_UTF8 As Long = 65001

@+

E.B.

Merci cs_EBArtSoft 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

nico_fip1 81 Messages postés mercredi 6 octobre 2004Date d'inscription 26 septembre 2006 Dernière intervention - 10 oct. 2004 à 15:41
0
Merci
Merci pour ta répose rapide EB ...

Pourtant, il y a un petit pb :

L'idéale pour moi, serrait d'intégrer cette fonction dans une macro Excel ; le Pb, c'est qu'il ne connait pas la fonction WideCharToMultiByte().

J'ai essayé ensuite d'implémenté cette fonction dans un projet Bisual Basic. Là, la fonction WideCharToMultiByte() est connue, mais pas le paramètre CP_UTF8 ; dans la MSDN, j'ai pas trouvé non plus la valaur ce paramètre pour definir la constante.

Merci beaucoup

Nico
Strasbourg
France

P.S. Dans le cas où on est obligé de passer par unprogramme indépendant (hors Excel), il est facile de faire "traduire" tout un fichier entier ?
nico_fip1 81 Messages postés mercredi 6 octobre 2004Date d'inscription 26 septembre 2006 Dernière intervention - 10 oct. 2004 à 17:24
0
Merci
Encore une question rapidement : en tapant
Open "C:\fichier1.cmt For Output As #FNb
Print #FNb, Cells(i, NumColonne).Value
Quel est le ffotmat du fichier qui sortira ?

Merci ....

Nico
Strasbourg
France
nico_fip1 81 Messages postés mercredi 6 octobre 2004Date d'inscription 26 septembre 2006 Dernière intervention - 10 oct. 2004 à 20:57
0
Merci
La fonction marche !!!!.....
Seul problème, ça a sucré les ' à â , et enlevé les accents.

C'est peut être pas de l'UTF-8 qu'il me faut ?
Ma plateforme tourne sur un OS de type UNIX, qui s'appelle QNX.

Si tu as une solution ....?

Sinon, je cgercherais moi-même.

Merci déjà pour toutes ces infos.

Où as tu trouver la valeur de CP_UTF8 ? J'essayerais avec d'autres codages.

Nico
Strasbourg
France
nico_fip1 81 Messages postés mercredi 6 octobre 2004Date d'inscription 26 septembre 2006 Dernière intervention - 10 oct. 2004 à 22:34
0
Merci
Merci beaucoup EB !!! Tout fonctionne !!!
C'est moi qui ai merdé...

En fait, sans passer par aucune macro, le texte est en "WESTERN EUROPEAN (Winoows)"

En passant par la macro, on arrive en UTF8

Encore un grand merci

Nico
Strasbourg
France
cs_EBArtSoft 4530 Messages postés dimanche 29 septembre 2002Date d'inscription 23 décembre 2014 Dernière intervention - 10 oct. 2004 à 22:48
0
Merci
De rien :) et bonne prog

E.B.
cs_mikl75 7 Messages postés lundi 20 janvier 2003Date d'inscription 8 décembre 2004 Dernière intervention - 8 déc. 2004 à 18:27
0
Merci
SVP je souhaite encoder tout un fichier en UTF8 avant de les integrer ds une Base Oracle utf8.

MiKL

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.