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 :

modification de fichier texte en batch


Sujet :

Windows

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 70
    Points : 38
    Points
    38
    Par défaut modification de fichier texte en batch
    Bonjour,

    Il faut que je convertisse un fichier texte (export d'une BdD) pour le mettre dans le bon format pour l'intégrer dans une autre appli.

    Voici le format de mon fichier actuel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    =order;1;2;3;4;5;6;7;8;9
    Voici le format de sortie souhaité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    =order
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Merci pour votre aide

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Bonjour,

    Citation Envoyé par ob1knob
    Bonjour,

    Il faut que je convertisse un fichier texte (export d'une BdD) pour le mettre dans le bon format pour l'intégrer dans une autre appli.

    Voici le format de mon fichier actuel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    =order;1;2;3;4;5;6;7;8;9
    Voici le format de sortie souhaité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    =order
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Merci pour votre aide
    Tu peux essayer d'installer ça : http://gnuwin32.sourceforge.net/packages/coreutils.htm
    Là, tu pourras utiliser la commande 'tr' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat fichier.txt | tr ";" "\n"

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    Merci pour ton lien... je pense qu'avec ce programme, je vais pouvoir faire ce dont j'ai besoin.
    Par contre, je l'ai testé rapidement et dans la fenêtre DOS, mon fichier s'est bien mis en ligne mais le resultat n'est pas enregistrer, le fichier texte reste comme à son origine.
    Je vais approfondir ce point.
    A tout hazard, il n'y aurai pas une instruction pour lui dire d'enregistrer sa modification?

  4. #4
    Membre habitué Avatar de petit arbre
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Points : 153
    Points
    153
    Par défaut
    Salut

    je suis étonné qu'une commande Unix tourne sous Dos, mais bon.

    si tu veux enregistrer le résultat, tu ajoutes un


    > fichierfinal.txt

    à la fin de la commande.


    soit


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cat fichier.txt | tr ";" "\n" > fichierfinal.txt

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    Merci mais j'ai encore un petit soucis...
    Au lieu d'avoir un véritable retour à la ligne dans le fichier créé, j'ai les "petits carrés" (désolé, je ne sais pas coment l'écrire) entre les valeurs.
    le problème n'est plus présent en créant un .rtf au lieu d'un .txt mais dès que je le renomme en .txt, le problème revient...

  6. #6
    Membre habitué Avatar de petit arbre
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Points : 153
    Points
    153
    Par défaut
    je pense que ça vient du logiciel qui ouvre test .txt : c'est lequel?

    le mieux est de regarder le fichier final en hexa pour voir ce que cette commande te met comme "retour chariot'

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    J'ouvre mon .txt avec le bloc notes... mais c'est vrai que si je l'ouvre avec wordpad, le retour à la ligne est "normal".
    Ce dont j'ai peur, c'est que le moteur d'intégration de l'appli vers laquelle ce .txt va être importé soit un peu perdue... je ne la connais pas du tout, je sais juste que le moteur d'intégration est développé en C

    comment puis-je faire pour voir le fichier en hexa? Que serait le "bon" "retour charriot"?
    Merci pour ton aide

  8. #8
    Membre habitué Avatar de petit arbre
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Points : 153
    Points
    153
    Par défaut
    tu cherches un éditeur Hexadécimal sur ce bon télécharger.com et ainsi tu verras ce que tu as effectivement comme terminateur de ligne, genre :

    en héxa

    OD
    ODOA
    OAOD

    Ensuite, renseignes toi sur ce qu'acceptes ton logiciel...

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    Ok Merci pour ton aide

  10. #10
    Membre habitué Avatar de petit arbre
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Points : 153
    Points
    153
    Par défaut
    vois si tu trouve Ultraedit en version de démo, il est bien et te permettra de rajouter des $OA à la fin des lignes s'il en manque....

  11. #11
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 815
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 815
    Points : 7 644
    Points
    7 644
    Par défaut
    Citation Envoyé par petit arbre
    je suis étonné qu'une commande Unix tourne sous Dos, mais bon.
    Ben tu lui as donné le lien du port des commandes unix sous Win, c'est normal que ça marche!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cat fichier.txt | tr ";" "\n" > fichierfinal.txt
    Sous Windows, le retour à la ligne dans les fichiers texte c'est \r\n (au lieu de \n sous unix). Essaye avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cat fichier.txt | tr ";" "\r\n" > fichierfinal.txt
    et vois si tu as toujours les petits carrés.

  12. #12
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Bonsoir,

    Citation Envoyé par petit arbre
    je suis étonné qu'une commande Unix tourne sous Dos, mais bon.
    <mode pointilleux="on">Ce n'est pas sous DOS, c'est sous Windows.</mode>

    Citation Envoyé par petit arbre
    vois si tu trouve Ultraedit en version de démo, il est bien et te permettra de rajouter des $OA à la fin des lignes s'il en manque....
    1) Ce ne sont pas les "$0A" qui manquent à mon avis : la commande que j'ai donnée transforme les ";" en "\n", or "\n" == LF ("Line Feed") == caractère ASCII n°10 (noté "0A" en hexadécimal).
    Ce qui lui manque, ce sont les caractères CR ("Carriage Return", "retour chariot" en français) qui précèdent les LF sous Windows.
    2) Plutôt que d'inviter quelqu'un à télécharger un logiciel payant en version démo, j'aurai préféré [1] que tu l'invites à télécharger un logiciel libre...question de philosophie, je suppose... Par exemple : Notepad++ permet, entre autres, de convertir les types de fins de lignes d'un fichier.
    Sinon, en ouvrant le fichier avec Wordpad et en l'enregistrant on peut aussi convertir.

    Citation Envoyé par ob1knob
    Que serait le "bon" "retour charriot"?
    Sous windows : CRLF (caractère 13 puis caractère 10, soit \x0d\x0a ou \r\n, etc selon la notation).

    Citation Envoyé par plegat
    Ben tu lui as donné le lien du port des commandes unix sous Win, c'est normal que ça marche!
    Mmmhhh... Qui lui a donné le lien ?

    Citation Envoyé par plegat
    Sous Windows, le retour à la ligne dans les fichiers texte c'est \r\n (au lieu de \n sous unix). Essaye avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cat fichier.txt | tr ";" "\r\n" > fichierfinal.txt
    et vois si tu as toujours les petits carrés.
    Exact pour "\r\n". J'ai donné "\n" seul pour deux raisons :
    - sous Windows, dans une console, quand un programme écrit "\n" sans rien faire de particulier, Windows ajoute automatiquement un "\r" avant (cf. flag "ENABLE_PROCESSED_OUTPUT" de SetConsoleMode)...il faut croire que ce n'est pas le cas ici ;
    - "tr" fait normalement de la transposition de caractères, pas de la transposition de chaînes de caractères (ex. : "echo abaab | tr ab cd" affiche "cdccd").

    Si cela ne fonctionne pas avec ce que Plegat t'a indiqué, tu peux aussi utiliser unix2dos :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat fichier.txt | tr ";" "\n" | unix2dos > fichierfinal.txt
    OU
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cat fichier.txt | tr ";" "\n" > fichierfinal.txt
    unix2dos fichierfinal.txt
    Cordialement,
    DS.



    [1] - Mais bon... Les goûts et les couleurs...

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    Merci à tous pour votre aide, je teste les différentes formules ce soir et je poste les résultats

  14. #14
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 815
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 815
    Points : 7 644
    Points
    7 644
    Par défaut
    Citation Envoyé par David.Schris
    Mmmhhh... Qui lui a donné le lien ?
    Oups...
    Désolé...
    Je rends à David.Schris ce qui revient à David.Schris..

    Y'a des fois je lis trop vite les posts... va falloir que je me surveille!

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    j'ai testé les différentes formules proposées : voici celle qui marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
    cat fichier.txt | tr ";" "\n" > fichierfinal.txt
    unix2dos fichierfinal.txt
    Encore merci pour votre aide!

  16. #16
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Merci pour le retour d'information

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

Discussions similaires

  1. Comment parser un fichier texte en batch ?
    Par arnaudperfect dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 20/11/2007, 09h07
  2. modification de fichier texte en shell
    Par jonathan1 dans le forum Linux
    Réponses: 29
    Dernier message: 02/07/2007, 15h04
  3. Création modification de fichiers texte
    Par thierrybatlle dans le forum WinDev
    Réponses: 4
    Dernier message: 04/04/2007, 15h37
  4. Modification de fichier texte
    Par jiloup dans le forum C++
    Réponses: 3
    Dernier message: 28/12/2005, 19h28
  5. Modification de fichiers texte
    Par ratbiker dans le forum Langage
    Réponses: 3
    Dernier message: 21/11/2005, 20h51

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