Windows Vista Forums
Vista Forums Home Join Vista Forums Windows 7 Forum Vista Tutorials Tags
Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks.

Go Back   Vista Forums > Misc Newsgroups > VB Script

Vista - Extraction et nettoyage de ligne avec un split dans un csv

Reply
 
Old 09-30-2008   #1 (permalink)
---DGI972---


 
 

Extraction et nettoyage de ligne avec un split dans un csv

Bonjour,

Je suis en train de faire un petit vbscrit pour extraire d'un fichier
csv en position (1) toute la ligne qui contient le numéro présent dans
un fichier txt

Par ex:

le fichier 30092008NPAI.txt qui contient:

112076
90553
42951

et le fichier csv

2;51268;*51268*; MARE MONARD ;21/09/1945;43;96
1;112076;*112076*;MIDE EMIL ;30/05/1956;43;96
2;128200;*128200*;BOUR AMEL ;01/08/1922;43;186
2;295270;*295270*;PONT MICHEL ;11/11/1924;43;186
2;90553;*90553*;MANY LAURE ;20/11/1964;43;66.
2;93968;*93968*;GIAU FRANC ;02/04/1935;42;93.
2;92215;*92215*;HOME FIDELE ;17/02/1923;43;186.
1;42951;*42951*;MEAU JEROME ;30/09/1948;43;96.
2;117936;*117936*;MATH RUDE ;31/03/1921;43;186.

il me faudrait en sortie un fichier csv
(nomfichiercsv_NPAI_Nomfichiertxt.csv) sans les numéros présent dans le
fichier txt.

2;51268;*51268*; MARE MONARD ;21/09/1945;43;96
2;128200;*128200*;BOUR AMEL ;01/08/1922;43;186
2;295270;*295270*;PONT MICHEL ;11/11/1924;43;186
2;93968;*93968*;GIAU FRANC ;02/04/1935;42;93.
2;92215;*92215*;HOME FIDELE ;17/02/1923;43;186.
2;117936;*117936*;MATH RUDE ;31/03/1921;43;186.

Voici mon Vbscript rien de très compliqué mais je bute sur le test du
split en position (1) (pas trés bien documenté la fonction split) et
sur la boucle for each.

Merci d'avance

Title = "Extraction NPAI"
Prompt = "Voulez vous lancer l'extraction des NPAI dans les Fichiers
CSV ?"_
&VbCrLf&VbCrLf&" Si oui:"_
&VbCrLf&"1/ Choisir le fichier CSV "_
&VbCrLf&"2/ Choisir le fichier TXT NPAI "
messagefile = msgbox(Prompt, vbOKCancel, Title)
IF messagefile = 2 then
wscript.quit
END IF
Wscript.Echo "1/ Choisir le fichier CSV."
fichCSV = ChooseFile()
Wscript.Echo "2/ Choisir le fichier TXT NPAI."
fichNPAI = ChooseFile()
Set oFs=CreateObject("Scripting.FileSystemObject")
Set oFileCSV=oFs.OpenTextFile(fichCSV)
Set oFileNPAI=oFs.OpenTextFile(fichNPAI)
'sCurrentFolder=oFs.GetParentFolderName(WScript.ScriptFullName)
sCurrentFolder=oFs.GetParentFolderName(fichCSV)
Set
oFileOut=oFs.OpenTextFile(sCurrentFolder&"\"&oFs.GetBaseName(fichCSV)&"_NPAI_"&oFs.GetBaseName(fichNPAI)&".csv",2,
True)
NPAI=Split(oFileNPAI.ReadAll,VBCrLf)
csv=Split(oFileCSV.ReadAll,VBCrLf)
For Each strLine In NPAI
For Each strField In csv
If strLine = split(csv,";")(1)then next
End if
Next
oFileOut.WriteLine strField
Next
Wscript.echo "L'Extraction des NPAI a bien été traitée dans le
répertoire "_
&sCurrentFolder&VbCrLf&VbCrLf&" et le nouveau fichier
"&oFs.GetBaseName(fichCSV)&"_"&oFs.GetBaseName(fichNPAI)&".csv a été
correctement nettoyé et généré"
WScript.Quit

'*******************************************************************************
Function ChooseFile()
On Error Resume Next
Dim Q2, sRet
Q2 = chr(34)
ChooseFile = ""
Set IE = CreateObject("InternetExplorer.Application")
IE.visible = False
IE.Navigate("about:blank")
Do Until IE.ReadyState = 4
Loop
IE.Document.Write "<HTML><BODY><INPUT ID=" & Q2 & "Fil" & Q2 &
"Type=" & Q2 & "file" & Q2 & "></BODY></HTML>"
With IE.Document.all.Fil
.focus
.click
ChooseFile = .value
End With
IE.Quit
Set IE = Nothing
End Function
'*******************************************************************************



My System SpecsSystem Spec
Old 09-30-2008   #2 (permalink)
---DGI972---


 
 

Re: Extraction et nettoyage de ligne avec un split dans un csv

---DGI972--- avait énoncé :
Quote:

> Bonjour,
>
> Je suis en train de faire un petit vbscrit pour extraire d'un fichier csv en
> position (1) toute la ligne qui contient le numéro présent dans un fichier
> txt
>
> Par ex:
>
> le fichier 30092008NPAI.txt qui contient:
>
> 112076
> 90553
> 42951
>
> et le fichier csv
>
> 2;51268;*51268*; MARE MONARD ;21/09/1945;43;96
> 1;112076;*112076*;MIDE EMIL ;30/05/1956;43;96
> 2;128200;*128200*;BOUR AMEL ;01/08/1922;43;186
> 2;295270;*295270*;PONT MICHEL ;11/11/1924;43;186
> 2;90553;*90553*;MANY LAURE ;20/11/1964;43;66.
> 2;93968;*93968*;GIAU FRANC ;02/04/1935;42;93.
> 2;92215;*92215*;HOME FIDELE ;17/02/1923;43;186.
> 1;42951;*42951*;MEAU JEROME ;30/09/1948;43;96.
> 2;117936;*117936*;MATH RUDE ;31/03/1921;43;186.
>
> il me faudrait en sortie un fichier csv
> (nomfichiercsv_NPAI_Nomfichiertxt.csv) sans les numéros présent dans le
> fichier txt.
>
> 2;51268;*51268*; MARE MONARD ;21/09/1945;43;96
> 2;128200;*128200*;BOUR AMEL ;01/08/1922;43;186
> 2;295270;*295270*;PONT MICHEL ;11/11/1924;43;186
> 2;93968;*93968*;GIAU FRANC ;02/04/1935;42;93.
> 2;92215;*92215*;HOME FIDELE ;17/02/1923;43;186.
> 2;117936;*117936*;MATH RUDE ;31/03/1921;43;186.
>
> Voici mon Vbscript rien de très compliqué mais je bute sur le test du split
> en position (1) (pas trés bien documenté la fonction split) et sur la boucle
> for each.
>
> Merci d'avance
>
> Title = "Extraction NPAI"
> Prompt = "Voulez vous lancer l'extraction des NPAI dans les Fichiers CSV ?"_
> &VbCrLf&VbCrLf&" Si oui:"_
> &VbCrLf&"1/ Choisir le fichier CSV "_
> &VbCrLf&"2/ Choisir le fichier TXT NPAI "
> messagefile = msgbox(Prompt, vbOKCancel, Title)
> IF messagefile = 2 then
> wscript.quit
> END IF
> Wscript.Echo "1/ Choisir le fichier CSV."
> fichCSV = ChooseFile()
> Wscript.Echo "2/ Choisir le fichier TXT NPAI."
> fichNPAI = ChooseFile()
> Set oFs=CreateObject("Scripting.FileSystemObject")
> Set oFileCSV=oFs.OpenTextFile(fichCSV)
> Set oFileNPAI=oFs.OpenTextFile(fichNPAI)
> 'sCurrentFolder=oFs.GetParentFolderName(WScript.ScriptFullName)
> sCurrentFolder=oFs.GetParentFolderName(fichCSV)
> Set
> oFileOut=oFs.OpenTextFile(sCurrentFolder&"\"&oFs.GetBaseName(fichCSV)&"_NPAI_"&oFs.GetBaseName(fichNPAI)&".csv",2,
> True)
> NPAI=Split(oFileNPAI.ReadAll,VBCrLf)
> csv=Split(oFileCSV.ReadAll,VBCrLf)
> For Each strLine In NPAI
> For Each strField In csv
> If strLine = split(csv,";")(1)then next
> End if
> Next
> oFileOut.WriteLine strField
> Next
> Wscript.echo "L'Extraction des NPAI a bien été traitée dans le répertoire "_
> &sCurrentFolder&VbCrLf&VbCrLf&" et le nouveau fichier
> "&oFs.GetBaseName(fichCSV)&"_"&oFs.GetBaseName(fichNPAI)&".csv a été
> correctement nettoyé et généré"
> WScript.Quit
>
> '*******************************************************************************
> Function ChooseFile()
> On Error Resume Next
> Dim Q2, sRet
> Q2 = chr(34)
> ChooseFile = ""
> Set IE = CreateObject("InternetExplorer.Application")
> IE.visible = False
> IE.Navigate("about:blank")
> Do Until IE.ReadyState = 4
> Loop
> IE.Document.Write "<HTML><BODY><INPUT ID=" & Q2 & "Fil" & Q2 & "Type=" &
> Q2 & "file" & Q2 & "></BODY></HTML>"
> With IE.Document.all.Fil
> .focus
> .click
> ChooseFile = .value
> End With
> IE.Quit
> Set IE = Nothing
> End Function
> '*******************************************************************************
Sorry it's not the good newsgroup.


My System SpecsSystem Spec
Reply

Thread Tools


Similar Threads
Thread Forum
Solved Extraction Fan? General Discussion
souci de lecture de video en ligne Vista music pictures video
problèmes avec hotmail.fr Vista mail
impossible de seulement cliquer sur un certain message électronique dans windows mail, dans ma boîte de réception. Vista mail
iso extraction Vista installation & setup


Vista Forums is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media Ltd

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46