![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
| 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. |
| |||||||
![]() |
| |
| | #1 (permalink) |
| | 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 Specs![]() |
| | #2 (permalink) |
| | 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 > '******************************************************************************* |
My System Specs![]() |
![]() |
| Thread Tools | |
| |
Similar Threads | ||||
| Thread | Forum | |||
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 | |||