modification et transformation d'un fichier CSV pour importation
42 réponses
---DGI972---
bonjour
Je dois faire un VBScript qui qui doit transformer et suprimer des
valeurs dans un fichier csv.
Issue d'une exportation d'un logiciel le fichier a traiter est de la
forme:
"D:\EXPORT\image0001.tif";"JEAN";"VALJEAN"
"D:\EXPORT\image0002.tif";"LOUIS";"GEORGES"
"D:\EXPORT\image0003.tif";"FELIX";LOUIS"
pour l'importer dans un autre logicel il faut que que le fichier soit
de la forme:
Il faut donc mettre le premier champ à la fin et suprimer le chemin
D:\EXPORT\ dans le premier champ.
je ne vois pas par quel bout prendre ce problème et je vous solicite
pour un début d'analyse.
un split dans un tableau puis un remplacement de D:\EXPORT\ par rien ?
data=csv.reader(open("csvin.txt",'rb'), dialectÛlpvirgule) w=csv.writer(open("csvout.txt", "wb"), dialectÛlpvirgule) for lig in data: w.writerow(lig[1:]+[lig[0].split('')[-1]])
Désolé, je n'ai pas le temps de l'adapter en un batch PeJBshell pour l'instant...
@-salutations
Michel Claveau
Bonjour !
Un 'tit script en Python, en vitesse (suis à la bourre...) :
data=csv.reader(open("csvin.txt",'rb'), dialectÛlpvirgule)
w=csv.writer(open("csvout.txt", "wb"), dialectÛlpvirgule)
for lig in data:
w.writerow(lig[1:]+[lig[0].split('\')[-1]])
Désolé, je n'ai pas le temps de l'adapter en un batch PeJBshell pour
l'instant...
data=csv.reader(open("csvin.txt",'rb'), dialectÛlpvirgule) w=csv.writer(open("csvout.txt", "wb"), dialectÛlpvirgule) for lig in data: w.writerow(lig[1:]+[lig[0].split('')[-1]])
Désolé, je n'ai pas le temps de l'adapter en un batch PeJBshell pour l'instant...
@-salutations
Michel Claveau
Gilles LAURENT
Bonjour,
La version batch cmd :
-- batch.cmd
@echo off for /f "tokens=1-3 delims=;" %%i in (csvin.txt) do ( for /f "tokens=3 delims=" %%l in ('echo %%i') do @echo %%j;%%k;"%%l )
-- batch.cmd
Les données au format CSV sont disponibles dans le fichier csvin.txt Pour procéder à la transformation : >batch.cmd > csvout.txt
-- Gilles LAURENT Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Bonjour,
La version batch cmd :
-- batch.cmd
@echo off
for /f "tokens=1-3 delims=;" %%i in (csvin.txt) do (
for /f "tokens=3 delims=" %%l in ('echo %%i') do @echo %%j;%%k;"%%l
)
-- batch.cmd
Les données au format CSV sont disponibles dans le fichier csvin.txt
Pour procéder à la transformation :
>batch.cmd > csvout.txt
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
@echo off for /f "tokens=1-3 delims=;" %%i in (csvin.txt) do ( for /f "tokens=3 delims=" %%l in ('echo %%i') do @echo %%j;%%k;"%%l )
-- batch.cmd
Les données au format CSV sont disponibles dans le fichier csvin.txt Pour procéder à la transformation : >batch.cmd > csvout.txt
bonjour, J'aurais préféré en VBScript ;-) , mais j'essaye cela dans 2 heures et je vous tiend au courant. merci :')
Jacques Barathon [MS]
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> wrote in message news:
bonjour Je dois faire un VBScript qui qui doit transformer et suprimer des valeurs dans un fichier csv. Issue d'une exportation d'un logiciel le fichier a traiter est de la forme: "D:EXPORTimage0001.tif";"JEAN";"VALJEAN" "D:EXPORTimage0002.tif";"LOUIS";"GEORGES" "D:EXPORTimage0003.tif";"FELIX";LOUIS"
pour l'importer dans un autre logicel il faut que que le fichier soit de la forme:
Il faut donc mettre le premier champ à la fin et suprimer le chemin D:EXPORT dans le premier champ.
Désolé pour le retard à l'allumage, voici la version PowerShell en une ligne:
type csvin.txt | %{$fic,$prenom,$nom=$_.split(";");'{0};{1};"{2}' -f $prenom,$nom,$fic.split('')[-1]} | out-file csvout.txt
Jacques
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> wrote in message
news:mn.e4ae7d665687a33e.55474@NOSPAMlaposte.net...
bonjour
Je dois faire un VBScript qui qui doit transformer et suprimer des valeurs
dans un fichier csv.
Issue d'une exportation d'un logiciel le fichier a traiter est de la
forme:
"D:EXPORTimage0001.tif";"JEAN";"VALJEAN"
"D:EXPORTimage0002.tif";"LOUIS";"GEORGES"
"D:EXPORTimage0003.tif";"FELIX";LOUIS"
pour l'importer dans un autre logicel il faut que que le fichier soit de
la forme:
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> wrote in message news:
bonjour Je dois faire un VBScript qui qui doit transformer et suprimer des valeurs dans un fichier csv. Issue d'une exportation d'un logiciel le fichier a traiter est de la forme: "D:EXPORTimage0001.tif";"JEAN";"VALJEAN" "D:EXPORTimage0002.tif";"LOUIS";"GEORGES" "D:EXPORTimage0003.tif";"FELIX";LOUIS"
pour l'importer dans un autre logicel il faut que que le fichier soit de la forme:
"Michel Claveau" <Enleverles a écrit dans le message de news: | Bonsoir !
Bonsoir,
| J'ai un doute, pour certains cas : | - si une chaîne contient des ; | - si une chaîne contient des " (généralement, on les double)
Aucun doute à avoir, vous avez totalement raison. Je suis néanmoins conforme au cahier des charges ;-)
-- Gilles LAURENT Me contacter : http://cerbermail.com/?zoTY7ZkLcD
jbongran
---DGI972--- wrote:
bonjour Je dois faire un VBScript qui qui doit transformer et suprimer des valeurs dans un fichier csv. Issue d'une exportation d'un logiciel le fichier a traiter est de la forme: "D:EXPORTimage0001.tif";"JEAN";"VALJEAN" "D:EXPORTimage0002.tif";"LOUIS";"GEORGES" "D:EXPORTimage0003.tif";"FELIX";LOUIS"
pour l'importer dans un autre logicel il faut que que le fichier soit de la forme:
Il faut donc mettre le premier champ à la fin et suprimer le chemin D:EXPORT dans le premier champ.
je ne vois pas par quel bout prendre ce problème et je vous solicite pour un début d'analyse. un split dans un tableau puis un remplacement de D:EXPORT par rien ?
merci d'avance
Juste la fonction en vbs qui devrait faire ce que tu veux: Function ParseLine(strLine) Dim testcsv, img, image testcsv = Split(strLine, """;""") img = Split(testcsv(0), "") image = img(UBound(img)) ParseLine = """" & testcsv(1) & """;""" & testcsv(2) & """;""" & image & """" End Function
Il suffit d'ouvrir le fichier source, d'envoyer ligne par ligne à la fonction et de récuperer le résultat pour mettre dans un nouveau fichier Pas testé ;-)
---DGI972--- wrote:
bonjour
Je dois faire un VBScript qui qui doit transformer et suprimer des
valeurs dans un fichier csv.
Issue d'une exportation d'un logiciel le fichier a traiter est de la
forme:
"D:EXPORTimage0001.tif";"JEAN";"VALJEAN"
"D:EXPORTimage0002.tif";"LOUIS";"GEORGES"
"D:EXPORTimage0003.tif";"FELIX";LOUIS"
pour l'importer dans un autre logicel il faut que que le fichier soit
de la forme:
Il faut donc mettre le premier champ à la fin et suprimer le chemin
D:EXPORT dans le premier champ.
je ne vois pas par quel bout prendre ce problème et je vous solicite
pour un début d'analyse.
un split dans un tableau puis un remplacement de D:EXPORT par rien ?
merci d'avance
Juste la fonction en vbs qui devrait faire ce que tu veux:
Function ParseLine(strLine)
Dim testcsv, img, image
testcsv = Split(strLine, """;""")
img = Split(testcsv(0), "")
image = img(UBound(img))
ParseLine = """" & testcsv(1) & """;""" & testcsv(2) & """;""" & image &
""""
End Function
Il suffit d'ouvrir le fichier source, d'envoyer ligne par ligne à la
fonction et de récuperer le résultat pour mettre dans un nouveau fichier
Pas testé ;-)
bonjour Je dois faire un VBScript qui qui doit transformer et suprimer des valeurs dans un fichier csv. Issue d'une exportation d'un logiciel le fichier a traiter est de la forme: "D:EXPORTimage0001.tif";"JEAN";"VALJEAN" "D:EXPORTimage0002.tif";"LOUIS";"GEORGES" "D:EXPORTimage0003.tif";"FELIX";LOUIS"
pour l'importer dans un autre logicel il faut que que le fichier soit de la forme:
Il faut donc mettre le premier champ à la fin et suprimer le chemin D:EXPORT dans le premier champ.
je ne vois pas par quel bout prendre ce problème et je vous solicite pour un début d'analyse. un split dans un tableau puis un remplacement de D:EXPORT par rien ?
merci d'avance
Juste la fonction en vbs qui devrait faire ce que tu veux: Function ParseLine(strLine) Dim testcsv, img, image testcsv = Split(strLine, """;""") img = Split(testcsv(0), "") image = img(UBound(img)) ParseLine = """" & testcsv(1) & """;""" & testcsv(2) & """;""" & image & """" End Function
Il suffit d'ouvrir le fichier source, d'envoyer ligne par ligne à la fonction et de récuperer le résultat pour mettre dans un nouveau fichier Pas testé ;-)
---DGI972---
Il se trouve que Gilles LAURENT a formulé :
"Michel Claveau" <Enleverles a écrit dans le message de news:
Bonsoir !
Bonsoir,
J'ai un doute, pour certains cas : - si une chaîne contient des ; - si une chaîne contient des " (généralement, on les double)
Aucun doute à avoir, vous avez totalement raison. Je suis néanmoins conforme au cahier des charges ;-)
Désolé, mais je n'ai pas réussi a sortir une seule ligne et même pas le fichier de sortie (même vide). J'ai essayé de debugger le cmd et j'ai un message %%i attendue !!
Il se trouve que Gilles LAURENT a formulé :
"Michel Claveau" <Enleverles XX.mcXX@XmXclaveauXX.XX.com> a écrit dans
le message de news:mn.ecd17d669eb40b79.34209@XmXclaveauXX.XX.com
Bonsoir !
Bonsoir,
J'ai un doute, pour certains cas :
- si une chaîne contient des ;
- si une chaîne contient des " (généralement, on les double)
Aucun doute à avoir, vous avez totalement raison.
Je suis néanmoins conforme au cahier des charges ;-)
Désolé, mais je n'ai pas réussi a sortir une seule ligne et même pas le
fichier de sortie (même vide).
J'ai essayé de debugger le cmd et j'ai un message %%i attendue !!
"Michel Claveau" <Enleverles a écrit dans le message de news:
Bonsoir !
Bonsoir,
J'ai un doute, pour certains cas : - si une chaîne contient des ; - si une chaîne contient des " (généralement, on les double)
Aucun doute à avoir, vous avez totalement raison. Je suis néanmoins conforme au cahier des charges ;-)
Désolé, mais je n'ai pas réussi a sortir une seule ligne et même pas le fichier de sortie (même vide). J'ai essayé de debugger le cmd et j'ai un message %%i attendue !!
---DGI972---
Le 29/06/2006, jbongran a supposé :
---DGI972--- wrote:
bonjour Je dois faire un VBScript qui qui doit transformer et suprimer des valeurs dans un fichier csv. Issue d'une exportation d'un logiciel le fichier a traiter est de la forme: "D:EXPORTimage0001.tif";"JEAN";"VALJEAN" "D:EXPORTimage0002.tif";"LOUIS";"GEORGES" "D:EXPORTimage0003.tif";"FELIX";LOUIS"
pour l'importer dans un autre logicel il faut que que le fichier soit de la forme:
Il faut donc mettre le premier champ à la fin et suprimer le chemin D:EXPORT dans le premier champ.
je ne vois pas par quel bout prendre ce problème et je vous solicite pour un début d'analyse. un split dans un tableau puis un remplacement de D:EXPORT par rien ?
merci d'avance
Juste la fonction en vbs qui devrait faire ce que tu veux: Function ParseLine(strLine) Dim testcsv, img, image testcsv = Split(strLine, """;""") img = Split(testcsv(0), "") image = img(UBound(img)) ParseLine = """" & testcsv(1) & """;""" & testcsv(2) & """;""" & image & """" End Function
Il suffit d'ouvrir le fichier source, d'envoyer ligne par ligne à la fonction et de récuperer le résultat pour mettre dans un nouveau fichier Pas testé ;-)
Merci, j'essaye cela et je vous tiens au courant.
NB: je suis trés lent
Le 29/06/2006, jbongran a supposé :
---DGI972--- wrote:
bonjour
Je dois faire un VBScript qui qui doit transformer et suprimer des
valeurs dans un fichier csv.
Issue d'une exportation d'un logiciel le fichier a traiter est de la
forme:
"D:EXPORTimage0001.tif";"JEAN";"VALJEAN"
"D:EXPORTimage0002.tif";"LOUIS";"GEORGES"
"D:EXPORTimage0003.tif";"FELIX";LOUIS"
pour l'importer dans un autre logicel il faut que que le fichier soit
de la forme:
Il faut donc mettre le premier champ à la fin et suprimer le chemin
D:EXPORT dans le premier champ.
je ne vois pas par quel bout prendre ce problème et je vous solicite
pour un début d'analyse.
un split dans un tableau puis un remplacement de D:EXPORT par rien ?
merci d'avance
Juste la fonction en vbs qui devrait faire ce que tu veux:
Function ParseLine(strLine)
Dim testcsv, img, image
testcsv = Split(strLine, """;""")
img = Split(testcsv(0), "")
image = img(UBound(img))
ParseLine = """" & testcsv(1) & """;""" & testcsv(2) & """;""" & image &
""""
End Function
Il suffit d'ouvrir le fichier source, d'envoyer ligne par ligne à la fonction
et de récuperer le résultat pour mettre dans un nouveau fichier
Pas testé ;-)
bonjour Je dois faire un VBScript qui qui doit transformer et suprimer des valeurs dans un fichier csv. Issue d'une exportation d'un logiciel le fichier a traiter est de la forme: "D:EXPORTimage0001.tif";"JEAN";"VALJEAN" "D:EXPORTimage0002.tif";"LOUIS";"GEORGES" "D:EXPORTimage0003.tif";"FELIX";LOUIS"
pour l'importer dans un autre logicel il faut que que le fichier soit de la forme:
Il faut donc mettre le premier champ à la fin et suprimer le chemin D:EXPORT dans le premier champ.
je ne vois pas par quel bout prendre ce problème et je vous solicite pour un début d'analyse. un split dans un tableau puis un remplacement de D:EXPORT par rien ?
merci d'avance
Juste la fonction en vbs qui devrait faire ce que tu veux: Function ParseLine(strLine) Dim testcsv, img, image testcsv = Split(strLine, """;""") img = Split(testcsv(0), "") image = img(UBound(img)) ParseLine = """" & testcsv(1) & """;""" & testcsv(2) & """;""" & image & """" End Function
Il suffit d'ouvrir le fichier source, d'envoyer ligne par ligne à la fonction et de récuperer le résultat pour mettre dans un nouveau fichier Pas testé ;-)