IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Transcodage de fichiers d'origine DOS


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut Transcodage de fichiers d'origine DOS
    Bonjour à toutes et à tous,

    je traite des fichiers d'origine DOS, dans lesquels, bien sur, les minuscules accentuées ne sont pas codées comme dans les application Windows !!!
    J'ai bien la solution suivante, faire une boucle de replace sur tous les caractères differents entre DOs et Windows. Etant moyennement fier de moi, je cherche une autre solution. Merci pour les idées que vous avez sur la question.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Public Class Form1
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            FileOpen(1, "c:\ficdos.txt", OpenMode.Input)
            Dim zw = LineInput(1)
            trscode(zw)
            MsgBox(zw)
            FileClose(1)
        End Sub
     
        Private Sub trscode(ByRef z As String)
            Dim zdos(8) As Char
            zdos(0) = Chr(&H82) ' Caractère é en dos
            zdos(1) = Chr(&H8A) ' caractère è en dos
            zdos(2) = Chr(&H87) ' caractère ç en dos
            zdos(3) = Chr(&H85) ' caractère à en dos
            zdos(4) = Chr(&H88) ' caractère ê en dos
            zdos(5) = Chr(&H93) ' caractère ô en dos
            zdos(6) = Chr(&H97) ' caractère ù en dos
            zdos(7) = Chr(&H89) ' caractère ë en dos
            zdos(8) = Chr(&H8B) ' caractère ï en dos
     
     
            Dim zwind() As String = {"é", "è", "ç", "à", "ê", "ô", "ù", "ë", "ï"}
            Dim i = 0
            For i = 0 To zdos.Length - 1
                Dim zi As String = zdos(i)
                z = z.Replace(zi, zwind(i))
            Next
        End Sub
    End Class

  2. #2
    Rédacteur
    Avatar de benji_dv
    Homme Profil pro
    Architecte
    Inscrit en
    Juillet 2005
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 375
    Par défaut
    Salut,
    Ton problème me semble lié à l'encodage du fichier, dès lors il te faut détecter le type d'encodage, puis l'ouvrir avec un stream décoré avec le bon paramètre...
    ca me semble similaire au post http://www.developpez.net/forums/sho...d.php?t=399060
    non ?
    Benjamin DEVUYST
    Et comme l'a dit Rick Osborne
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live"
    http://bdevuyst.developpez.com
    http://blog.developpez.com/bdevuyst
    www.bdevuyst.com

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut
    Merci benji dv, Et oui, encoder et decoder me semblent bien liès à mon problème, mais après avoir été sur les liens cités, je ne suis pas plus avancé (yé souis noulle). Mon rêve serait de voir un exemple de code qui convertisse une string ASCII en une chaine UNICODE.

  4. #4
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Par défaut
    Tu devrais lire la msdn car ça parle d'encodage DOS (notamment "Europe de l'Ouest (DOS)")

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut
    Merci neilbgr, oui, c'est bien le sujet, pas évident à comprendre mais j'essaye.

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 80

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Par défaut Un pas en avant.....
    Alors voila : En cherchant, j'ai trouvé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim fic_dest As New StreamWriter("c:\ficonv.txt", True, System.Text.Encoding.Default)
            Dim monStreamReader As New StreamReader("c:\ficdos.txt", System.Text.Encoding.ASCII)
            Dim ls_contenu = monStreamReader.ReadToEnd
            fic_dest.WriteLine(ls_contenu)
            fic_dest.Close()
        End Sub
    Mais ça ne fonctionne pas du tout avec les minuscules accentuées du fichier d'origine DOS. J'ai essayé de remplacer ASCII par UTF7, UTF8, c'est pas mieux.
    ahhhhhhh, si on pouvait m'aider à construire la fonction convfromdos(zdos)
    dim z as string = convfromdos(zdos)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/11/2006, 16h52
  2. tester fichier partage ms dos
    Par fabiofabio dans le forum Administration
    Réponses: 8
    Dernier message: 20/09/2006, 09h21
  3. Convertir un fichier texte ms-dos
    Par frechy dans le forum Windows
    Réponses: 8
    Dernier message: 02/03/2006, 20h59
  4. Conversion d'un fichier texte unix -> dos
    Par lejert dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 15/11/2005, 15h59
  5. [Fichier] génération format DOS
    Par Alexr dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 13/01/2005, 17h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo