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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 70
    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 émérite

    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
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 70
    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 confirmé 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
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 70
    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 confirmé 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
    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
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 819
    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 819
    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.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  8. #8
    Membre émérite

    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
    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...

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

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

  10. #10
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 819
    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 819
    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!
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

+ 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