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 :

Extraire et exporter tous les champs d'un fichier txt


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    vendeur
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : vendeur
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Par défaut Extraire et exporter tous les champs d'un fichier txt
    Tout d'abord bonjour a tous et a toutes car ceci est mon premier post sur ce forum.

    J'ai parcouru le forum, pas dans sa totalité il est vrais, a la recherche d'une solution, mais n'ayant que peut de connaissance je commence a avoir un peu mal a la tête, j'ai trouvé quelque idées dans différents sujets, mais de les mettre bout a bout pour obtenir le résultat souhaité me semble impossible au vu de mes compétences.

    Voilà ce que cherche en vain a faire, si cela bien sur est possible:

    J'ai un fichier texte avec une structure répétitive comme ceci:

    game
    name pacman
    description "PuckManJapan set 1"
    year 1980
    manufacturer "Namco"
    video screen raster orientation vertical x 224 y 288 colors 16 freq 60.000000
    sound channels 1
    input players 2 control joy4way coins 3


    game
    name pacmanjp
    description "PuckManJapan set 2"
    year 1980
    manufacturer "Namco"
    video screen raster orientation vertical x 224 y 288 colors 16 freq 60.000000
    sound channels 1
    input players 2 control joy4way coins 3


    game
    name pacmanm
    description "Pac-ManMidway"
    year 1980
    manufacturer "[Namco]Midway license"
    video screen raster orientation vertical x 224 y 288 colors 16 freq 60.000000
    sound channels 1
    input players 2 control joy4way coins 3
    Ce que je souhaiterais faire c'est de pouvoir extraire les sept lignes se trouvant après game
    De les copier individuellement dans un fichier texte et de nommer ce nouveau fichier texte avec la chaine de caractère se trouvant après name et cela pour l'intégralité du fichier, ce qui représenterais environs 2500 fichiers texte en sortie.
    Exemple pour le premier bloc:

    pacman.txt

    Contenant:

    name pacman
    description "PuckManJapan set 1"
    year 1980
    manufacturer "Namco"
    video screen raster orientation vertical x 224 y 288 colors 16 freq 60.000000
    sound channels 1
    input players 2 control joy4way coins 3

    Est ce possible????

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    Voici la solution a ton problème :

    Le nom du fichier de base et fichier.txt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off&cls
    
    Echo traitement en cours....
    setlocal enabledelayedexpansion
    
    for /f "tokens=1* delims= " %%a in (fichier.txt) do (
         if /i "%%a"=="name" set $file=%%b.txt
         if not "%%a"=="game" echo %%a %%b>>"!$File!"
    )
    Echo termin‚
    Tu vois il n'y a pas de quoi en faire une migraine...


  3. #3
    Membre du Club
    Homme Profil pro
    vendeur
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : vendeur
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Par défaut
    houauu ou houa!!! je saIs pas trop comment l’écrire, bref merci.

    je pense que le script fonctionne mais il y a un soucis, j'ai récupéré cela dans le terminal enfin la fenêtre;

    C:\Users\lole\Desktop\Nouveau dossier (2)>(
    if /I " name" == "name" set $file=npacmod.txt
    if not " name" == "game" echo name npacmod 1>>"!$File!"
    )
    Le chemin d'accès spécifié est introuvable.

    C:\Users\lole\Desktop\Nouveau dossier (2)>(
    if /I " description" == "name" set $file="PuckManharder?".txt
    if not " description" == "game" echo description "PuckManharder?" 1>>
    "!$File!"
    )
    Le chemin d'accès spécifié est introuvable.

    C:\Users\lole\Desktop\Nouveau dossier (2)>(
    if /I " year" == "name" set $file=1981.txt
    if not " year" == "game" echo year 1981 1>>"!$File!"
    )
    Le chemin d'accès spécifié est introuvable.

    C:\Users\lole\Desktop\Nouveau dossier (2)>(
    if /I " manufacturer" == "name" set $file="Namco".txt
    if not " manufacturer" == "game" echo manufacturer "Namco" 1>>"!$File!
    "
    )
    Le chemin d'accès spécifié est introuvable.

    C:\Users\lole\Desktop\Nouveau dossier (2)>(
    if /I " video" == "name" set $file=screen raster orientation vertical x 224 y 28
    8 colors 16 freq 60.000000 .txt
    if not " video" == "game" echo video screen raster orientation vertical
    x 224 y 288 colors 16 freq 60.000000 1>>"!$File!"
    )
    Le chemin d'accès spécifié est introuvable.

    C:\Users\lole\Desktop\Nouveau dossier (2)>(
    if /I " sound" == "name" set $file=channels 1 .txt
    if not " sound" == "game" echo sound channels 1 1>>"!$File!"
    )
    Le chemin d'accès spécifié est introuvable.

    C:\Users\lole\Desktop\Nouveau dossier (2)>(
    if /I " input" == "name" set $file=players 2 control joy4way coins 3 .txt
    if not " input" == "game" echo input players 2 control joy4way coins 3
    1>>"!$File!"
    )
    Le chemin d'accès spécifié est introuvable.
    j'ai l'impression qu'il n'arrive pas a trouver le fichier de sortie, dans lequel écrire les données, mais c'est quand même fort de café, chapeau bas.
    pourriez vous me détailler les actions de ce script s'il vous plait.

    Encore merci

  4. #4
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Testez ce code :
    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off&cls
    Echo traitement en cours....
    setlocal enabledelayedexpansion
    ::Dossier contenant un espace
    Set Folder=C:\Users\Mehdi\Desktop\Mehdi\BAT\Fichier\Nouveau dossier
    Set File=fichier.txt
    set chemin=%Folder%\%File%
    for /f "tokens=1* delims= " %%a in ('Type "%chemin%"') do (
         if /i "%%a"=="name" set OutPutfile=%%b.txt && If Exist "!Folder!\!OutPutfile!" Del "!Folder!\!OutPutfile!" && Echo Traitement du "!OutPutfile!"
         if not "%%a"=="game" echo %%a %%b >> "!Folder!\!OutPutfile!"
    )
    Echo termine
    pause

  5. #5
    Membre du Club
    Homme Profil pro
    vendeur
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : vendeur
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Par défaut
    Alors merci pour ce nouveau code, mais malheureusement j'obtiens toujours une erreur;

    après la phase; "traitement en cours" il apparait que le chemin d’accès spécifiè est introuvable ce message apparait dans la console énormément de fois.....

    a savoir que mon répertoire de travail est: C:\Users\lole\Desktop\bat, et que le fichier a traiter se nomme final.txt j'ai donc modifié le code comme ceci:

    @echo off&cls
    Echo traitement en cours....
    setlocal enabledelayedexpansion
    :ossier contenant un espace
    Set Folder=C:\Users\lole\Desktop\bat
    Set File=final.txt
    set chemin=%Folder%\%File%
    for /f "tokens=1* delims= " %%a in ('Type "%chemin%"') do (
    if /i "%%a"=="name" set OutPutfile=%%b.txt && If Exist "!Folder!\!OutPutfile!" Del "!Folder!\!OutPutfile!" && Echo Traitement du "!OutPutfile!"
    if not "%%a"=="game" echo %%a %%b >> "!Folder!\!OutPutfile!"
    )
    Echo termine
    pause
    Finalement je rencontre la même erreur pour vos deux script,je pense avoir oublié quelque chose...

  6. #6
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Je ne sais pas ce que Hackoo à cherché à faire ??

    vu que l'on traite que des noms de fichiers que l'on récupère dans ton final.txt. (il n'y avait pas besoin de le modifier).

    Est

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off&cls
     
    Echo traitement en cours....
    setlocal enabledelayedexpansion
     
    for /f "tokens=1* delims= " %%a in (final.txt) do (
         if /i "%%a"=="name" set $file=%%b.txt
         if not "%%a"=="game" echo %%a %%b>>"!$File!"
    )
    Echo termin‚


    Est-ce que le script cree des fichiers oui ou non ?

    Sinon pourrais-tu me passer le fichier final.txt pour que je test ?


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

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/07/2009, 14h19
  2. export de tous les champ d'un etat dans excel
    Par ouflala dans le forum VBA Access
    Réponses: 0
    Dernier message: 13/11/2007, 14h42
  3. afficher tous les champs d'une table
    Par julio84 dans le forum ASP
    Réponses: 8
    Dernier message: 19/01/2005, 10h31
  4. Retrouver tous les champs d'une table
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/07/2004, 20h40
  5. Afficher tous les champs d'une table avec dbexpress et MySQL
    Par LHT dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/06/2004, 17h11

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