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

VBScript Discussion :

avec un fichier txt au format utf8 j'aimerai le convertir en ansi sous win11


Sujet :

VBScript

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 505
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 505
    Points : 1 354
    Points
    1 354
    Par défaut avec un fichier txt au format utf8 j'aimerai le convertir en ansi sous win11
    Bonjour à toutes et à tous,

    J'avais un code qui pouvait le faire mais à force de le modifier j'obtiens une erreur et je ne sais pas pourquoi.

    Si quelqu'un avait une idée cela m'arrangerait.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    ' Convert UTF-8 file to ANSI - cincap
     
    currentdir=Left(WScript.ScriptFullName,InStrRev(WScript.ScriptFullName,"\"))
     
    source = currentdir & "out.txt"
    dest = currentdir & "outansi.txt"
    charset= "Windows-1252"
     
    Set stream=CreateObject("ADODB.Stream")
    stream.Open
    stream.Type = 1
    stream.LoadFromFile source
    stream.Type = 2
    stream.Charset = "utf-8"
        
    Dim fso
    Set fso = CreateObject("Scripting.Filesystemobject")
        
    Set f = fso.CreateTextFile(dest, True)
        
    DoUntil stream.EOS
       
      strLine = stream.ReadText(10000)
           
      Set output=CreateObject("ADODB.Stream")
      output.Open
      output.Type = 2
      output.Charset = charset
      output.WriteText strLine
           
      output.Position = 0
      str = output.ReadText(-1)
     
      f.Write str
     
    Loop
     
    f.Close
    stream.Close  
    Ou une autre solution ?

    Merci d'avance.

    @+,

    cincap

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 120
    Points : 15 689
    Points
    15 689
    Par défaut
    Salut
    j'obtiens une erreur
    Un peu cour comme indication pour t'aider, quelle erreur? un N° ...... une information littéral ....
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 425
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 425
    Points : 2 085
    Points
    2 085
    Par défaut
    sans connaitre l'erreur, je pense qu'il y a peut-être à voir avec le fait que ton stream output soit créé et ouvert systématiquement à chaque tour de boucle

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 505
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 505
    Points : 1 354
    Points
    1 354
    Par défaut
    Bonsoir à toutes et à tous,

    @ umfred et à ProgElecT, merci de vos réponses, en fait le code ne provoque pas une erreur de codage mais le fichier out.txt reste au format uft8.

    Ce fichier est seul dans le dossier et le fichier .bat aussi.

    Peut être une confusion dans les noms de répertoires ?

    Sinon ma commande se fait depuis une autre application et me permet de voir les données de ma carte réseau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute(0, 'open', 'cmd', '/c netsh int sh >out.txt', 0, 0);
    J'espérais remettre a/ en plus mais cela ne fonctionne pas en direct le fichier out.txt est tjs en uft8.

    Ce qui est étonnant car c'est une ancienne application qui affichait correctement le résultat, peut-être une mise à jour de Win11 ?

    @+,

    cincap

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 425
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 425
    Points : 2 085
    Points
    2 085
    Par défaut
    le fichier convertit est censé s'appelé outansi.txt, le script vbs devrait avoir une extension en .vbs et pas en .bat
    le script semble celui de vbsedit https://www.vbsedit.com/scripts/misc/text/utf8_ansi.asp

    tu lances ton script dans une invite de commande ? sinon fait le, et ça te donnera les messages d'erreur si il y en a.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 505
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 505
    Points : 1 354
    Points
    1 354
    Par défaut
    Bonjour à toutes et à tous,

    @ umfred, merci pour ta suggestion mais en fichier .bat cela m'affiche bien les renseignements voulus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @echo off
    netsh int sh int > out.txt
    ::@pause
    exit
    Je vais essayé avec 1252

    @+,

    cincap

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 425
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 425
    Points : 2 085
    Points
    2 085
    Par défaut
    Je disais surtout que je ne comprenais pas pourquoi tu parlais d'un .bat alors que la question est posée sur un script vbs, que tu nous parles d'une autre application qui te génère le fichier. Donc j'étais perdu dans l'organisation de ton process.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 505
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 505
    Points : 1 354
    Points
    1 354
    Par défaut
    Bonsoir à toutes et à tous,

    @ umfred, tu as raison car souvent de Delphi j'utilise le .bat ou le .vbs et ici je viens d'ouvrir une ancienne application qui m'affiche des données de mon matériel et j'ai le même problème d'affichage.

    Je suis certain que c'est depuis la dernière mise à jour de Win 11.

    Maintenant je pourrais utiliser le fichier .bat mais j'ai essayé de placer chcp 1252 et mon fichier de sortie reste en utf8, je suis certain que je le place mal !

    @+,

    cincap

  9. #9
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Points : 5 833
    Points
    5 833
    Par défaut
    Il suffirait peut-être d'utiliser PowerShell au sein du code:
    Get-Content .\Out.txt | Set-Content -Encoding utf8 .\dest.txt.
    Ainsi le fichier sera converti en UTF-8
    Le fichier de script devrait être mis dans le même dossier que le fichier source(à cause du .\ )sinon indique le chemin complet
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

Discussions similaires

  1. fichier txt à formater
    Par Elise02 dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 16/03/2009, 10h50
  2. [E-02] Générer un fichier txt en formatant les colonnes
    Par meumeu73.1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/11/2008, 12h23
  3. SGBD sur SUN Solaris avec synchro fichier txt
    Par Nicos77 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 01/02/2007, 16h03
  4. Pb avec le fichiers .txt générés
    Par Emilie MARQUOIS-OGEZ dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2006, 14h43
  5. Problème avec mes fichiers txt
    Par salseropom dans le forum C
    Réponses: 5
    Dernier message: 18/05/2006, 16h07

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