Dll de conversion d'un format de fichier vers un autre : utf8 vers ansi, unicode, utf7....

Soyez le premier à donner votre avis sur cette source.

Vue 21 719 fois - Téléchargée 915 fois

Description

Cette DLL permet de convertir un fichier dans un format spécifique vers un autre fichier dans un autre format
Par défaut cette DLL comporte deux méthodes :
- UTF8_to_ANSI(file_source As String,file_destination)
- ANSI_to_UTF8(file_source As String,file_destination)

Le fait d'avoir mis ces traitements dans une DLL permet de la réutiliser dans plusieurs de mes projets en entreprise et de diffuser la DLL.
(elle est utilisé par plusieurs personnes dans mon service)

Vous pouvez bien entendu modifier le code-source afin d'adapter les différents formats d'encodage des fichiers ! (ASCII,BigEndianUnicode,Default,Unicode,UTF7,UTF8)
Vous trouverez également la liste dans le code.

Pour utiliser la dll il suffit de l'inclure dans votre projet et de l'instancier, ex :
Dim FileConverter As New CvrtFileFormat.FileConvert
FileConverter.UTF8_to_ANSI("C:\test_UTF8.txt", "C:\test_ANSI.txt")

Précision :
pout connaitre le format d'encodage d'un fichier il suffit de l'ouvrir dans le notepad et de faire "enregistrer sous", dans cette fenêtre se trouve une liste déroulante avec les différents encodage, le codage du fichier est selectionné par défaut !

Source / Exemple :


Imports System.IO 'Importation de l'espace de noms pour les fichiers

'--------------------------------------------------------------------------------------------
'Voici les différents encodages acceptés :
'System.Text.Encoding.ASCII
'                    .BigEndianUnicode
'                    .Default
'                    .Unicode
'                    .UTF7
'                    .UTF8

'Ces deux méthodes permettent par défaut de convertir de UTF8 vers ANSI et de ANSI vers UTF8,
'mais vous pouvez très bien choisir l'encodage souhaité ! (cf liste ci-dessus)
'--------------------------------------------------------------------------------------------

Public Class FileConvert

    'Méthode de conversion de UTF8 vers ANSI
    Sub UTF8_to_ANSI(ByVal file_source As String, ByVal file_destination As String)
        Dim ls_contenu As String

        Try
            'Déclaration du fichier de destination avec l'encodage souhaité, ici "default" (=ANSI)
            Dim fic_dest As New StreamWriter(file_destination, True, System.Text.Encoding.Default)
            'Déclaration du fichier source avec son encodage, ici UTF8
            Dim monStreamReader As New StreamReader(file_source, System.Text.Encoding.UTF8)
            'Lecture de tout le contenu du fichier source
            ls_contenu = monStreamReader.ReadToEnd
            'Ecriture du contenu du fichier source dans le fichier de destination 
            fic_dest.WriteLine(ls_contenu)
            'Fermeture du fichier
            fic_dest.Close()

        Catch err As Exception
            'Capture de l'erreur éventuelle
            MsgBox("Erreur : " + vbCrLf + err.ToString, MsgBoxStyle.Critical, "CvrtFileFormat.dll")
        End Try

    End Sub

    'Méthode de conversion de ANSI vers UTF8
    Sub ANSI_to_UTF8(ByVal file_source As String, ByVal file_destination As String)
        Dim ls_contenu As String

        Try
            'Déclaration du fichier de destination avec l'encodage souhaité, ici "UTF8"
            Dim fic_dest As New StreamWriter(file_destination, True, System.Text.Encoding.UTF8)
            'Déclaration du fichier source avec son encodage, ici "Default" (=ANSI")
            Dim monStreamReader As New StreamReader(file_source, System.Text.Encoding.Default)
            'Lecture de tout le contenu du fichier source
            ls_contenu = monStreamReader.ReadToEnd
            'Ecriture du contenu du fichier source dans le fichier de destination
            fic_dest.WriteLine(ls_contenu)
            'Fermeture du fichier
            fic_dest.Close()

        Catch err As Exception
            'Capture de l'erreur éventuelle
            MsgBox("Erreur : " + vbCrLf + err.ToString, MsgBoxStyle.Critical, "CvrtFileFormat.dll")
        End Try
    End Sub

End Class

Conclusion :


En esperant que ce soit utile à quelqu'un !
C'est pas bien complexe, il existe d'ailleurs certainement une autre manière de le faire, perso j'ai trouvé cette manière de faire !
Et bien sur la dll peut être amélioré, par exemple passé en paramètre l'encodage du fichier en entré et l'encodage du fichier en sortie !
N'hésitez pas à apporter vos remarques !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

zaksuke
Messages postés
1
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
8 mars 2013
-
Bonjour à tous,

Je souhaite savoir s'il est possible de se servir de cet outil via un script VBScript.
En fait, l'ideal serait de charger la classe vb et d'appeler la fonction UTF8_to_ANSI directement dans mon script VBS, à l'image de cet exemple fourni par l'auteur de l'outil :

Dim FileConverter As New CvrtFileFormat.FileConvert
FileConverter.UTF8_to_ANSI("C:\test_UTF8.txt", "C:\test_ANSI.txt")

Est-ce que quelqu'un aurait une idée ?
Merci d'avance,

ZaK
loupoukoulous
Messages postés
1
Date d'inscription
samedi 2 mars 2013
Statut
Membre
Dernière intervention
2 mars 2013
-
Bonjour à tous,

Je suis nouveau sur ce forum et à ce propos, je remercie tous les fanas de code qui donnent de leur temps pour trouver des solutions aux autres.
Ma question est toute bête, comment faire pour utiliser cette DLL ? Je suis super novice en code et je ne vois pas la finalité de la chose.
Je dois trouver une solution qui permette de changer l'encodage d'un fichier csv qui est en format Ansi et le rendre en format UTF-8.
Merci pour votre aide.
Xavier
iskes
Messages postés
9
Date d'inscription
lundi 29 octobre 2007
Statut
Membre
Dernière intervention
4 février 2010
-
Bonjour

Comment utiliser cette DLL avec java (jbuilder)?

Merci d'avance pour votre aide.

Cordialement
grarp
Messages postés
3
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
25 octobre 2009
-
Bonjour,

Merci pour ta dll, cela semblerait répondre à mon besoin.
Je cherche à convertir un fichier UTF8 en ANSI par ligne de commande (dans le dos).
J'ai donc pensé à utiliser rundll32.exe pour appeler ta dll (au lieu de l'exemple vb que tu donnes) mais je n'y parviens malheureusement pas. Peux-tu m'aider s'il te plait?
Voici la ligne de commande que j'essaie de faire:
rundll32.exe C:\Essai\CvrtFileFormat.dll,FileConverter.UTF8_to_ANSI "C:\Essai\toto.txt","C:\Essai\toto2.txt")

Mais j'obtiens un message d'erreur "Entrée manquante"...
BSGilles
Messages postés
12
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
18 août 2008
-
Merci ! Merci !
Cela m'a permis de comprendre pourquoi des fichiers issus de VB6, lus en ANSI par mon programme, ne prenaient plus les accents quand ils étaient écrits et relus : il faut lire en ANSI et écrire en UTF8 pour VB.net

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.