Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Résolu]découper un fichier .txt en plusieurs fichier
Auteur Message
Répondre en citant
Message [Résolu]découper un fichier .txt en plusieurs fichier 
Bonjour à tous(tes)

Depuis ce matin je galère pour trouver le moyen de découper le contenu d'un fichier texte afin d'en extraire cette partie dans un autre fichier .txt

par exemple si je me sert de ce fichier de base (base.txt)

Citation:
Date de la saisie : samedi 3 mars 2012

ligne 1
ligne 2
ligne 3
etc......


==================== Nouvelle journée ==================== Nouvelle journée ====================


Date de la saisie : lundi 2 mars 2012

ligne 1
ligne 2
ligne 3
etc......

==================== Nouvelle journée ==================== Nouvelle journée ====================


Date de la saisie : dimanche 1 avril 2012

ligne 1
ligne 2
ligne 3
etc......

==================== Nouvelle journée ==================== Nouvelle journée ====================


Date de la saisie : lundi 2 avril 2012

ligne 1
ligne 2
ligne 3
etc......



je voudrait par exemple extraire le contenu se trouvant entre le premier groupe de mot "mars 2012" (celui de cette ligne>> Date de la saisie : samedi 3 mars 2012 ) et

le premier groupe de mot "avril 2012" (celui de cette ligne>> Date de la saisie : dimanche 1 avril 2012 ) et d'exporter ce contenu vers un fichier "mars_2012.txt"

grosso modo, je cherche dans le fichier base.txt se qui se trouve entre le premier jour de mars et le premier jour d'avril et envoie le contenu vers le fichier "mars_2012.txt"

J'ai beau retourner dans tout les sens ma boucle for avec tokens/delims/find mais je n'arrive pas au résultat désiré Neutral

le but final de cette manip est de diviser en 12 mois le contenu d'un rapport annuelle

merci d'avance et bon Dimanche Okay




______________________________________________________
"Ce que tu gardes pour toi s'en ira mourir... C'est ce que tu donnes qui te restera"
Visiter le site web du posteur MSN
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Résolu]découper un fichier .txt en plusieurs fichier 
Salut,

Comme ceci?
Code:

@Echo off
rem ------ Initialisation
set fichier_source=test.txt
set dossier_destination=%cd%\dst
set chaine_delimitation_sections="==================== Nouvelle journée"
set chaine_recherche_date="Date de la saisie"

setlocal enabledelayedexpansion
set i1=0
if not exist "%dossier_destination%" md "%dossier_destination%"

rem ------ Création du tableau
for /f "tokens=*" %%i in ('type "%fichier_source%"') do (
   echo %%i|find %chaine_delimitation_sections% >nul
   if !errorlevel!==0 (
      set /a i1+=1
      set i2=0
   )
   set /a i2+=1
   set tab_!i1!_nb=!i2!
   set tab_!i1!_!i2!=%%i
   echo %%i|find %chaine_recherche_date% >nul
   if !errorlevel!==0 for /f "tokens=8*" %%j in ("%%i") do set tab_!i1!_date=%%j %%k
)

rem ------ Création des fichiers
for /l %%i in (0,1,%i1%) do (
   for /l %%j in (1,1,!tab_%%i_nb!) do (
   echo.!tab_%%i_%%j!>>"%dossier_destination%\!tab_%%i_date!.txt"
   )
)

pause





______________________________________________________
Mes principales réalisations: Cp (batch) et IPSvc (autoit)
Répondre en citant
Message [Résolu]découper un fichier .txt en plusieurs fichier 
ouha, le batch de ouf Shocked

C'est nickel pour le résultat obtenu, je doit juste corriger quelque petits bugs d'affichage pour le nom de certains fichier (par exemple les "é" apparaissent comme "Ú" ) mais c'est rien de grave.

J'étais très loins de ça avec mon batch et j'en mesure d'autant plus les proprets qu'il me reste a faire pour être au point Embarassed

Si je pouvais abusé, est-ce que tu pouvais me commenter un peu plus en détail le batch que tu as crées

en tout cas, merci pour tout, c'est vraiment cool de trouver une aide pareil Okay




______________________________________________________
"Ce que tu gardes pour toi s'en ira mourir... C'est ce que tu donnes qui te restera"
Visiter le site web du posteur MSN
Répondre en citant
Message [Résolu]découper un fichier .txt en plusieurs fichier 
Merci.

code détaillé:
Code:

@Echo off
rem ------ Initialisation
set fichier_source=test.txt
set dossier_destination=%cd%\dst
set chaine_delimitation_sections="==================== Nouvelle journée"
set chaine_recherche_date="Date de la saisie"

setlocal enabledelayedexpansion
set i1=0
if not exist "%dossier_destination%" md "%dossier_destination%"

rem ------ Création du tableau
rem --- Boucle parcourant le fichier source
for /f "tokens=*" %%i in ('type "%fichier_source%"') do (
   rem --- recherche dans la ligne en cours la variable chaine_delimitation_sections
   echo %%i|find %chaine_delimitation_sections% >nul
   rem --- si recherche positive on fait
   if !errorlevel!==0 (
      rem --- on ajoute 1 a la variable i1
      set /a i1+=1
      rem --- on réinitialise la variable i2
      set i2=0
   )
   rem --- on ajoute 1 a la variable i2
   set /a i2+=1
   rem --- on créé la variable "tab_[numéro de section]_nb" qui contient le nombre de lignes pour la section en cours
   set tab_!i1!_nb=!i2!
   rem --- on créé la variable "tab_[numéro de section]_[numéro de ligne]" qui contient la ligne en cours de la section en cours
   set tab_!i1!_!i2!=%%i
   rem --- recherche dans la ligne en cours la variable chaine_recherche_date
   echo %%i|find %chaine_recherche_date% >nul
   rem --- si recherche positive on créé la varaible "tab_[numéro de section]_date" qui contient la date de la section en cours au format "[mois] [année]"
   if !errorlevel!==0 for /f "tokens=8*" %%j in ("%%i") do set tab_!i1!_date=%%j %%k
)

rem ------ Création des fichiers
rem --- boucle parcourant les sections
for /l %%i in (0,1,%i1%) do (
   rem --- boucle parcourant les lignes de la section en cours
   for /l %%j in (1,1,!tab_%%i_nb!) do (
      rem --- écriture du contenu de la section en cours dans le fichier "[mois] [année].txt"
      echo.!tab_%%i_%%j!>>"%dossier_destination%\!tab_%%i_date!.txt"
   )
)

pause





______________________________________________________
Mes principales réalisations: Cp (batch) et IPSvc (autoit)
Répondre en citant
Message [Résolu]découper un fichier .txt en plusieurs fichier 
Bonsoir,

Super, je comprend mieux maintenant Okay

Encore un grand merci pour ta gentillesse et tout le temps que tu as passés à m'aider Wink


bonne semaine à toi et à toute l'équipe du fofo

@++

Jean-michel




______________________________________________________
"Ce que tu gardes pour toi s'en ira mourir... C'est ce que tu donnes qui te restera"
Visiter le site web du posteur MSN
Message [Résolu]découper un fichier .txt en plusieurs fichier 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch