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 :

Script pour remplacer des characters speciaux dans des fichiers


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Script pour remplacer des characters speciaux dans des fichiers
    Bonjour,
    Je recherche un script pour scanner tous les fichiers d'un repertoire pour remplacer certains characters speciaux (de la liste ci dessous) par un espace ou un "_"

    Voici un exemple d'un texte d'un fichier :
    0000ACSYOK WRLVT
    (Notepad++ affiche un 'SUB')

    il semblerait que ce charactere fait parti de la liste des characters non imprimables :

    Les 33 premiers caractères (0 à 32) et le caractère 127 forment les caractères non imprimables.

    DEC HEX Description
    0 00 NUL Null
    1 01 STX Start of Header
    2 02 SOT Start of Text
    3 03 ETX End of Text
    4 04 EOT End of Transmission
    5 05 ENQ Enquiry
    6 06 ACK Acknowledge
    7 07 BEL Bell
    8 08 BS BackSpace
    9 09 HT Horizontal Tabulation
    10 0A LF Line Feed
    11 0B VT Vertical Tabulation
    12 0C FF Form Feed
    13 0D CR Carriage Return
    14 0E SO Shift Out
    15 0F SI Shift In
    16 10 DLE Data Link Escape
    17 11 DC1 Device Control 1 (XON)
    18 12 DC2 Device Control 2
    19 13 DC3 Device Control 3 (XOFF)
    20 14 DC4 Device Control 4
    21 15 NAK Negative acknowledge
    22 16 SYN Synchronous Idle
    23 17 ETB End of Transmission Block
    24 18 CAN Cancel
    25 19 EM End of Medium
    26 1A SUB Substitute
    27 1B ESC Escape
    28 1C FS File Separator
    29 1D GS Group Separator
    30 1E RS Record Separator
    31 1F US Unit Separator
    32 20 [Space] Space
    127 7F DEL Delete
    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    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 077
    Points : 17 167
    Points
    17 167
    Par défaut
    Salut

    Dans une première boucle ouvrir tous les fichiers, dans une boucle interne remplacer avec la fonction Replace toutes les occurrences de chaque caractères non imprimable
    En sortie de cette boucle interne, enregistrer sous le même nom le fichier, passage dans la boucle externe .......
    Le principe
    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
    Dim T, TextFichier
    'boucle primaire
        'ouvrir un fichier (input -> lecture)
        'TextFichier = contenu du fichier
        TextFichier = "0000ACSYOK WRLVT"
        'fermer le fichier
        'boucle interne
            For T = 0 To 32
                TextFichier = Replace(TextFichier, Chr(T), "_")
            Next
            TextFichier = Replace(TextFichier, Chr(127), "_")
            MsgBox TextFichier '******** a remer **********
        'fin de boucle interne
     
        'boucle primaire  suite
        'reouvrir le fichier (output -> écriture)
        'enregistrer TextFichier
        'fermer le fichier
    'retour début boucle primaire pour le fichier suivant
    'fin
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour ProgElect,
    Merci beaucoup pour ta reponse rapide !
    je test le script et te tiens au courant.

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour ProgElect,
    ton script remplace bien les characteres speciaux.
    Par contre j'ai une question (de débutant en programmation...), dans ton script, il y a une partie :
    TextFichier = " " ou tu mets le contenu du fichier, comment faire pour que plutot ce script scan par exemple le repertoire C:\Temp\ et modifie tous les fichiers qu'il trouve contenant les characteres speciaux et les enregistrent sous un nom auquel il serait rajouté "copy"?
    Merci beaucoup pour ton aide !
    St.

  5. #5
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    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 077
    Points : 17 167
    Points
    17 167
    Par défaut
    Salut
    Dans la FAQ VBScript
    Comment lister les fichiers d'un dossier ?
    Avec l'exemple donné, dans la boucle For each tu ouvres chaque fichiers tu appliques le code proposé plus haut dans la discussion, et tu sauvegardes
    le fichier en ajoutant "copy" à oFl.Name de l'exemple de la FAQ.

    Pour la sauvegarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Dim f
    Set f = oFSO .OpenTextFile(oFl.Name & "Copy", ForWriting)
    f.Write TextFichier 'du code plus haut
    f.close
    oFSO est déjà créé avant la boucle For each Dim f devra lui aussi être déclaré en debut de code, toujours en dehors de la boucle.

    Edit: ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const ForReading = 1, ForWriting = 2
    en début de code
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Salut, je te remercie beaucoup pour ton aide !
    Je pense qu'on peut fermer ce post.

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

Discussions similaires

  1. script pour suprimer le caractere "\r" dans un fichier
    Par cerco1 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 22/10/2010, 07h48
  2. script pour remplacer des caractères par des blancs
    Par floctc dans le forum Langage
    Réponses: 5
    Dernier message: 03/06/2009, 16h44
  3. Réponses: 2
    Dernier message: 26/07/2007, 08h35
  4. Réponses: 22
    Dernier message: 14/04/2006, 17h01
  5. [MySQL] Script pour modifier les caracteres speciaux dans la bdd
    Par isa150183 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 15/09/2005, 13h07

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