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

Scripts/Batch Discussion :

[batch] problème d'accents


Sujet :

Scripts/Batch

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Points : 77
    Points
    77
    Par défaut [batch] problème d'accents
    Bonjour,
    Je lis et écris des fichiers. Le script marche bien sauf qu'à chaque écriture/lecture, les accents sont transformés en caractères bizarres. J'ai essayé de convertir les fichiers en OEM, en ANSI, en UTF8... Mais rien à faire, à chaque fois les accents ne sont pas bons. Voici le déroulement du programme :
    script 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    - Lire le fichier ChangeLog.txt
    - Garder seulement les n premières lignes
    - Mettre ces lignes dans un fichier temporaire (changes.txt)
           => pas de problème d'accent ici
    script 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    - Lire changes.txt et mettre le contenu dans une variable
    - Remplacer les variables du template (fichier template.txt) par leur valeur (paramètres + changes.txt)
           => le contenu de changes intégré au template a les accents transformés mais pas le reste du template
    - Mettre ce résultat dans un fichier temporaire
    - Encoder le contenu de ce fichier en UrlEncode
           => à la lecture, les accents sont tous transformés
    - Ecrire le contenu dans le fichier résultat
    Je ne sais pas trop comment régler ce problème. Si quelqu'un a une idée...

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Choupinou
    Voici le déroulement du programme :
    Dans ton cas c'est plutot le code qui est à présenter.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    Ok le voici :
    Script 1:
    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
    @echo Off
    
    set changesFile=%1
    set tempDir=%2
    set nbLivraisons=0
    
    title > "%tempDir%"\changes.txt
    for /f "delims=" %%i in ('type %changesFile%') do set VrLigne=%%i& call :traitLigne
    goto fintraitLigne
    
    :traitLigne
    set isLivraisonLine=0
    if "%VrLigne:~0,9%"=="livraison" set isLivraisonLine=1
    if "%VrLigne:~0,9%"=="Livraison" set isLivraisonLine=1
    if "%isLivraisonLine%"=="1" set /a nbLivraisons+=1
    if "%nbLivraisons%"=="1" if not "%isLivraisonLine%"=="1" echo %VrLigne% >> "%tempDir%"\changes.txt
    goto :eof
    
    :fintraitLigne
    script 2:
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    @echo Off
    
    set utilDir=%1
    set tempDir=%2
    set templateFile=%3
    set mailFile=%4
    set dest=%5
    set appName=%6
    set version=%7
    set DSTAMP=%8
    set user=%9
    set changesFile=%tempDir%\changes.txt
    set changes=
    
    copy %templateFile% %mailFile%
    for /f "delims=" %%i in ('type %changesFile%') do set VrLigne=%%i& call :traitLigne
    goto fintraitLigne
    
    :traitLigne
    set changes=%changes%%VrLigne%__newline__
    goto :eof
    
    :fintraitLigne
    echo.
    echo ----------------changes----------------
    echo %changes% 
    
    %utilDir%\switch %mailFile% __changes__ "%changes%"
    %utilDir%\switch %mailFile% __dest__ %dest%
    %utilDir%\switch %mailFile% __appName__ %appName%
    %utilDir%\switch %mailFile% __version__ %version%
    %utilDir%\switch %mailFile% __DSTAMP__ %DSTAMP%
    %utilDir%\switch %mailFile% __user__ %user%
    
    echo.
    echo ----------------template du body parsé----------------
    type %mailFile%
    
    cd %utilDir%
    title > "%tempDir%\tempBodyMail.txt"
    
    for /f "delims=" %%i in ('type %mailFile%') do set ligne=%%i& call :traitBodyLigne
    goto fintraitBodyLigne
    
    :traitBodyLigne
    java URLUTF8Encoder "%ligne%" >> %tempDir%\tempBodyMail.txt
    goto :eof
    
    :fintraitBodyLigne
    echo.
    echo ----------------body encodé----------------
    type %tempDir%\tempBodyMail.txt
    
    set body=
    for /f "delims=" %%i in ('type %tempDir%\tempBodyMail.txt') do set ligne=%%i& call :traitTempLigne
    goto fintraitTempLigne
    
    :traitTempLigne
    
    set body=%body%%ligne%%%0d
    goto :eof
    
    :fintraitTempLigne
    
    echo %body% > %mailFile%
    %utilDir%\switch %mailFile% __newline__ %%0d
    
    echo.
    echo ----------------mail prêt----------------
    type %mailFile%
    Les fichiers nécessaires sont disponibles ici : http://rapidshare.com/files/150272492/fichiers.zip.html
    Pour lancer les scripts voici les commandes :
    se placer à la racine
    util\delivery\changes.bat "ChangeLog.txt" "temp"
    util\delivery\createMailBody.bat "util\delivery" "temp" "util\delivery\mailTemplate.txt" "temp\body.txt" "destination" "appname" "version" "jj/mm/aa" "moi"

    Merci de votre aide

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Ne connaissant pas le java, comment utiliser la classe ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    C:\Temp\write>java URLUTF8Encoder "abcd éàèùï"
    Exception in thread "main" java.lang.NoClassDefFoundError: URLUTF8Encoder
    Caused by: java.lang.ClassNotFoundException: URLUTF8Encoder
    Es-tu sûr que cela ne provient pas de ta classe JAVA ?
    As-tu un jeu de test ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    Il faut te trouver dans le répertoire contenant le fichier java puis exécuter la commande
    Exemple :
    java URLUTF8Encoder "toto 1"
    le résultat c'est toto%201

    Sinon essayer ça :
    java -cp "chemin vers le fichier class" URLUTF8Encoder "toto 1"

    Essai aussi en mettant (ou non) l'extension .class après le nom du fichier

    [edit]
    Je viens de découvrir un bug dans mon script. Si il y a des guillemets dans le fichier ChangeLog.txt, la commande switch n'est pas correctement exécutée...
    [/edit]

Discussions similaires

  1. petit problème d'accent
    Par No_SenS dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/04/2005, 13h10
  2. Problèmes d'accent avec une connexion ODBC et ADO
    Par michael.jacques dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2005, 15h36
  3. Réponses: 3
    Dernier message: 25/02/2005, 20h46
  4. [XSLT] application d une xslt et problème d'accents
    Par lanfeust23 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 26/07/2004, 13h08
  5. Problème avec accents et CHARACTER SET ISO8859_1
    Par kinda dans le forum InterBase
    Réponses: 13
    Dernier message: 30/10/2003, 15h49

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