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 Discussion :

Probleme codage de caractère


Sujet :

Windows

  1. #1
    Membre à l'essai
    Profil pro
    Ingenieur Projet
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Probleme codage de caractère
    Bonjour,

    Je poste a cet endroit du forum ne sachant pas trop ou exactement posté.

    Voici mon souci. Via une Macro Excel, je cherche a lister le contenu d'un répertoire (sous répertoire inclus) dans un fichier texte. Le nombre de document et tellement important que pour des questions de rapidité d'exécution je passe par une requête Dos. Tout fonction a un détail prêt:
    Quand je regarde dans l'invite de commande, le nom des fichier est correct.
    Sauf que dans le fichier texte, tous les caractères avec un accent sont remplacé par des virgules ou des guillemets.

    Exemple :
    Dans l'invite de commande MS-DOS : "procédure d'exécution et de contrôle"
    Dans le fichier texte généré : "proc,dure d'ex,cution et de contr"le"

    Comment m'assurer que les caractères accentués soient bien renseignés ?

    Pour info mon code ci-dessous :

    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
    CHEMIN1 = CHEMINSOURCE
    CHEMIN2 = CHEMINSOURCE & "\"
    Open CHEMIN2 & "liste.bat" For Output As #1
    Print #1, "tree " & CHEMIN1 & " /A /F > " & CHEMIN2 & "filelist.txt"
    Close #1
    'Ouvre le fichier.bat contenant la commande DOS et créer le fichier filetext.txt
    
    Shell (CHEMIN2 & "liste.bat")
    DATTIME = DateAdd("s", 25, Now)
    Do
    DoEvents
    Loop Until Now >= DATTIME
    
    Dim Tbl() As String
    Dim Ligne As String
    Dim i As Integer
    'ouvre le fichier
    Open CHEMIN2 & "filelist.txt" For Input As #1
    'boucle sur toutes les lignes du fichier
    Do While Not EOF(1)
        'récupère la ligne entière
        Line Input #1, Ligne
        'et stocke dans un tableau
        i = i + 1
        ReDim Preserve Tbl(1 To i)
        Tbl(i) = Ligne
    Loop
    Close #1
    Merci pour votre aide.

  2. #2
    Membre à l'essai
    Profil pro
    Ingenieur Projet
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Probleme codage de caractère (Solution)
    Re Bonjour,

    Bon après, 11 heures, une dizaine de café et 4 aspirines, voici la solution.

    MS-DOS utilise une table ASCII pour les caractères alors que Bloc Note, utilise la table ANSI.
    Les 128 premiers caractères sont identiques entre les 2 tables mais pas les 128 suivants qui correspondent aux caractères spéciaux.
    D'où, cette différences

    Si nous voulons extraire l'arborescence des fichiers vers un fichier texte a partir de MS-DOS, la commande suivante est incomplète :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tree c:\dossier /A /F > c:\dossier/filelist.txt
    Pour faire correspondre les tables de caractères, il faut utiliser la fonction "powershell"
    La commande DOS devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    powershell -command "tree c:\dossier /A /F > c:\dossier\filelist.txt"
    Attention toutefois à ne pas oublier d'échapper les guillemets si besoin à l'aide de chr(34)
    Exemple dans mon bout de code initial corrigé ci dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CHEMIN1 = CHEMINSOURCE
    CHEMIN2 = CHEMINSOURCE & "\"
    Open CHEMIN2 & "liste.bat" For Output As #1
    Print #1, "powershell -command " & chr(34) & "tree " & CHEMIN1 & " /A /F > " & CHEMIN2 & "filelist.txt" & chr(34)
    Close #1
    Pour tous ceux a qui ça pourrais rendre service.

    @++
    Agd

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

Discussions similaires

  1. [MySQL] probleme de codage des caractères spéciaux
    Par rinuom99 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/11/2010, 15h42
  2. Problème codage des caractères
    Par webrider dans le forum Requêtes
    Réponses: 1
    Dernier message: 29/06/2006, 21h32
  3. [MySQL] Codage de caractères
    Par papyphp dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/05/2006, 10h20
  4. Problème de codage de caractères depuis l'import
    Par compu dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 22/03/2006, 08h37
  5. [HTML] probleme codage html avec ie/firefox
    Par devilzaz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/02/2006, 01h00

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