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 :

Générer deux fichiers xml et txt à partir d'un fichier Excel [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2019
    Messages : 24
    Par défaut Générer deux fichiers xml et txt à partir d'un fichier Excel
    Bonjour,

    Je suis un novice en programmation Batch (quelques scripts très simples au compteur) et j'ai besoin d'aide de la part de personnes plus compétentes que je ne le suis.

    Pour le travail, je dois mettre en place une solution automatique qui consiste à générer un fichier xml et un fichier txt qui s'alimentent à partir d'un fichier Excel (Cf. fichier ci-contre).
    J'aurai souhaité splitter le fichier en 2 : lignes 1 à 26 : dans un fichier1.txt et 26 au reste dans un fichier2.txt.
    le fichier2.txt correspond à la partie variable du fichier xml, la partie fixe étant stockée dans un autre fichier txt que je fusionne par la suite.
    J'ai un script trouvé sur ce site mais qui me splite mon fichier originel en plusieurs fichiers alors que je souhaiterais qu'il le splitte en 2 seulement ... pouvez-vous m'aider svp ???

    Code Batch : 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
    @echo on
     
    setLocal EnableDelayedExpansion
    set limit=25
    set file=protocol_information.txt
    set lineCounter=1
    set filenameCounter=1
     
    set name=
    set extension=
    for %%a in (%file%) do (
        set "name=%%~na"
        set "extension=%%~xa"
    )
     
    for /f "tokens=*" %%a in (%file%) do (
        set splitFile=!name!!filenameCounter!!extension!
        if !lineCounter! gtr !limit! (
            set /a filenameCounter=!filenameCounter! + 1
            set lineCounter=1
            echo Created !splitFile!.
        )
        echo %%a>> !splitFile!
     
        set /a lineCounter=!lineCounter! + 1
    )
     
    pause = null

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Avec ceci tu devrais t'en sortir

    Code batch : 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
    @echo off
     
    setLocal EnableDelayedExpansion
     
    set file=protocol_information.txt
    set file1=fichier1.txt
    set file2=fichier2.txt
     
    del "%file1%"2>nul
    del "%file2%"2>nul
     
    set /a lineCounter=1
    for /f "tokens=*" %%a in (%file%) do (
        if !lineCounter! gtr 26 (echo %%~a>>%file2%) else (echo %%~a>>%file1%)
        set /a lineCounter+=1
    )
     
    pause

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2019
    Messages : 24
    Par défaut [Résolu]
    Tu est un put*** de génie !!!
    Merci beaucoup !

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Ça va il y a plus dur comme énigme

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2019
    Messages : 24
    Par défaut
    Re,

    J'ai un peu avancé sur ce script et je suis de nouveau bloqué ... ><"
    Concrètement : j'ai un fichier .txt, obtenu à partir de calculs sur Excel) qui va être splité en 2 : lignes 1 à 25 : infos destinées à un autre programme (input_for_cvs.txt)/ lignes à partir de 26 : fichier .xml (1ere partie / input_01.txt)
    Je modifie ensuite le contenu du fichier input_02.txt (car obtenu depuis Excel) --> input_03.txt
    Le fichier XML final est composé de deux fichiers txt (lignes > 26 du fichier input.txt (input_03.txt) et fichier input_04.txt (fin)). Je fusionne donc ces deux fichiers.
    Mon problème est que lorsque je fusionne input_03.txt et input_04.txt, il y a un caractère bizarre à la fin du code qui empêche son ouverture par le logiciel sencé ouvrir le fichier ... Ce caractère n'est pas présent dans input_04.txt qui-plus-est ...
    J'ai essayé d'enlever la dernière ligne du code via (lien) mais je pense que le delim me coupe du code (ligne code source 920 à 924) ... Auriez-vous une solution ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Je considère que t'a fusion est une concaténation de deux fichiers.
    Dans ce cas tu devrait faire un :
    copy input1.txt input2.txt output.txt
    Je suis sur téléphone je ne pourrais pas faire de test avant quelques jours.

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

Discussions similaires

  1. Inscrire des données dans deux fichiers excel a partir d'un userform
    Par creunch dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/09/2010, 11h52
  2. Réponses: 1
    Dernier message: 13/09/2009, 23h22
  3. [FPDF] Générer deux fichiers PDF à partir d'une classe
    Par doreen07 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 31/10/2007, 11h17
  4. [REPORTS 6i] Générer un fichier excel à partir de reports
    Par moneyinthebank dans le forum Reports
    Réponses: 7
    Dernier message: 07/03/2007, 14h13
  5. Réponses: 4
    Dernier message: 02/05/2005, 20h25

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