Exploitation de colonnes
Résolu
Ka-El
Messages postés
279
Statut
Membre
-
Ka-El Messages postés 279 Statut Membre -
Ka-El Messages postés 279 Statut Membre -
Bonjour,
je possède actuellement un fichier texte (plutôt simple) composé de 2 colonnes et dont les champs sont séparés par un espace:
Mon but c'est d'exploiter les informations du fichier pour aboutir sur un autre fichier qui afficherait la ligne suivante:
SC=SOURCE,ETR=DISTANT,ENVLP=TOTO,DOS=C:\repertoire\envoi\fichier_test,SMG=test,NOTION=proto,NAMEF=MONEY
Les informations de la 1ère colonne sont donc transformées de cette façon:
ab ==> SC
pa ==> ETR
id ==> ENVLP
rep ==> DOS
mg ==> SMG
val ==> NOTION
tn ==> NAMEF
La 2nde colonne ne change pas, mais la correspondance doit être respectée. Exemple pour la 1ère ligne:
N'étant pas expert en batch, je ne sais pas comment traiter cette problématique...
Est-ce que vous auriez des idées ?
Merci d'avance :-)
Ka-El
je possède actuellement un fichier texte (plutôt simple) composé de 2 colonnes et dont les champs sont séparés par un espace:
ab SOURCE
pa DISTANT
id TOTO
rep C:\repertoire\envoi\fichier_test
mg test
val proto
tn MONEY
Mon but c'est d'exploiter les informations du fichier pour aboutir sur un autre fichier qui afficherait la ligne suivante:
SC=SOURCE,ETR=DISTANT,ENVLP=TOTO,DOS=C:\repertoire\envoi\fichier_test,SMG=test,NOTION=proto,NAMEF=MONEY
Les informations de la 1ère colonne sont donc transformées de cette façon:
ab ==> SC
pa ==> ETR
id ==> ENVLP
rep ==> DOS
mg ==> SMG
val ==> NOTION
tn ==> NAMEF
La 2nde colonne ne change pas, mais la correspondance doit être respectée. Exemple pour la 1ère ligne:
ab SOURCE doit donc donner SC=SOURCE,
etc...
N'étant pas expert en batch, je ne sais pas comment traiter cette problématique...
Est-ce que vous auriez des idées ?
Merci d'avance :-)
Ka-El
2 réponses
-
Avec mes connaissances assez vagues, j'arrive à obtenir un résultat sous forme de colonne:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "tokens=1,* delims= " %%A in (%fichier.txt%) do (
if "%%~A"=="ab" (echo SC=%%~B,)
if "%%~A"=="pa" (echo ETR=%%~B,)
if "%%~A"=="id" (echo ENVLP=%%~B,)
if "%%~A"=="rep" (echo DOS=%%~B,)
if "%%~A"=="mg" (echo SMG=%%~B,)
if "%%~A"=="val" (echo NOTION=%%~B,)
if "%%~A"=="tn" (echo NAMEF=%%~B,)
) >>%resultat%
Mais je ne vois pas comment formater les données sur une ligne, de façon à obtenir ce résultat ?:
SC=SOURCE,ETR=DISTANT,ENVLP=TOTO,DOS=C:\repertoire\envoi\fichier_test,SMG=test,NOTION=proto,NAMEF=MONEY-
Salut,
Tu y es presque, voilà la modif :
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "tokens=1,* delims= " %%A in (fichier.txt) do (
if "%%~A"=="ab" (set ligne=!ligne!SC^=%%~B,)
if "%%~A"=="pa" (set ligne=!ligne!ETR^=%%~B,)
if "%%~A"=="id" (set ligne=!ligne!ENVLP^=%%~B,)
if "%%~A"=="rep" (set ligne=!ligne!DOS^=%%~B,)
if "%%~A"=="mg" (set ligne=!ligne!SMG^=%%~B,)
if "%%~A"=="val" (set ligne=!ligne!NOTION^=%%~B,)
if "%%~A"=="tn" (set ligne=!ligne!NAMEF^=%%~B,)
)
echo !ligne! >result.txt
pause
-
-
Salut Barnabe,
je savais que je pouvais compter sur toi ! :-)
Ta solution fonctionne nickel.
Encore merci pour ton aide