Problème pour extraire des informations d'un fichier
Résolu/Fermé
Ka-El
Messages postés
260
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
7 août 2020
-
2 oct. 2019 à 09:43
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 - 8 oct. 2019 à 14:04
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 - 8 oct. 2019 à 14:04
A voir également:
- Problème pour extraire des informations d'un fichier
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Extraire une video youtube - Guide
- Ouvrir un fichier .bin - Guide
2 réponses
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
Modifié le 2 oct. 2019 à 21:54
Modifié le 2 oct. 2019 à 21:54
Bonjour,
Essaie comme ceci :
Attention à ces 2 lignes :
set IDA=!IDA: =!
set IDA=!IDA: =!
Dans la première ligne il s'agit d'un espace entre les : et le =
Dans la deuxième ligne il s'agit d'une tabulation entre les : et le =
Le forum a supprimé la tabulation.
Essaie comme ceci :
@echo off
setlocal enableextensions enabledelayedexpansion
chcp 28591 >nul
color 0A
set catalogue=%USERPROFILE%\Desktop\catalogue.txt
set "people="
set ctrlcft=%USERPROFILE%\Desktop\resultat.txt
echo.> %ctrlcft%
for /f "usebackq tokens=2-3 delims== " %%B in ("%catalogue%") do (
set IDA=%%~B
set IDA=!IDA: =!
set IDA=!IDA: =!
if "!IDA!"=="SPART" (set people=%%~C)
if "!IDA!"=="RPART" (
set people=!people!;%%~C
echo !people!>> %ctrlcft%
set "people="
)
)
pause
exit
Attention à ces 2 lignes :
set IDA=!IDA: =!
set IDA=!IDA: =!
Dans la première ligne il s'agit d'un espace entre les : et le =
Dans la deuxième ligne il s'agit d'une tabulation entre les : et le =
Le forum a supprimé la tabulation.
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
Modifié le 7 oct. 2019 à 23:59
Modifié le 7 oct. 2019 à 23:59
Est-ce que c'est mieux comme ça :
@echo off
setlocal enableextensions enabledelayedexpansion
chcp 28591 >nul
color 0A
set catalogue=%USERPROFILE%\Desktop\catalogue.txt
set ctrlcft=%USERPROFILE%\Desktop\resultat.txt
set "chaine="
echo.>%ctrlcft%
for /f "usebackq tokens=1,2,* delims==" %%A in ("%catalogue%") do (
echo %%A = %%B %%C
echo %%A | findstr /C:" IDTU" >nul && (if defined chaine (call :envoi))
echo %%A | findstr /C:" IDTU" /C:" PHASESTEP" /C:" IDF" /C:" SPART" /C:" RPART" >nul && (set "chaine=!chaine!^;%%B")
echo %%A | findstr /C:"TYPE" | findstr /V "Protocol Filter" >nul && (set "chaine=!chaine!^;%%B")
echo %%B | findstr /C:" DATED" /C:" DATEE" >nul && (set "chaine=!chaine!^;%%C")
echo %%B | findstr /C:" TIMED" /C:" TIMEE" >nul && (set "chaine=!chaine!^;%%C" & if "!chaine:~-1!"=="0" (set "chaine=!chaine:~,-2!") else (set "chaine=!chaine:~,-3!"))
)
call :envoi
pause
exit
:envoi
set "chaine=!chaine: =!" # on supprime les espaces
set "chaine=!chaine: =!" # on supprime les tabulations
set "chaine=!chaine:~1!" # on supprime le premier point-virgule
echo.!chaine!;>>%ctrlcft% & echo.>>%ctrlcft% & set "chaine="
goto :eof
Ka-El
Messages postés
260
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
7 août 2020
8 oct. 2019 à 14:04
8 oct. 2019 à 14:04
Magnifique ! :-)
ça marche nickel ! Je savais que je pouvais compter sur toi.
Juste quelques trucs à adapter, mais l'essentiel est là.
Merci beaucoup pour ton aide précieuse !
ça marche nickel ! Je savais que je pouvais compter sur toi.
Juste quelques trucs à adapter, mais l'essentiel est là.
Merci beaucoup pour ton aide précieuse !
3 oct. 2019 à 08:35
Par contre, si je veux ajouter un autre élément de recherche dans le script (par exemple l'information qui se trouve devant "DATED =", comment devrais-je procéder ?
Du coup, je suppose que la partie du code devrait prendre cette forme:
J'ai tenté quelques trucs, mais ça ne marche pas...
En tout cas, merci beaucoup pour ton aide précieuse ! :-)
Modifié le 4 oct. 2019 à 00:52
4 oct. 2019 à 10:52
Ceci dit, le script n'abouti pas. Je pense que le problème vient de la boucle qui va chercher les informations toujours sur la même position (tokens tokens=1-2 delims== ")
Je continue à chercher de mon côté...
4 oct. 2019 à 16:27
7 oct. 2019 à 07:59
Fichier dispo en mp
Merci pour ton aide ! :-)