n = "00" & n+1En effet, mélanger des chaines et des chiffres ne présage rien de bon.
Dim n As Integer n = 1puis fabriquer une chaine à comparer propre avec ce chiffre. On y reviendra.
Dim sTemp As String ' à ajouter Do Until recupext.AtEndOfStream MyString = recupext.ReadLine Mysep = "." MyArray = Split(MyString, Mysep, -1) ' Transforme le chiffre en chaine précéde de zéros (000 à 999) sTemp = Right$("000" & CStr(n), 3) MsgBox n If result = sTemp Then MsgBox result & " found" n = n + 1 End If WScript.Echo result Loop MsgBox sTemp & " free" MsgBox n & " free"
result = myarray(1)
n = "00" & n+1
Dim objFSO, File, WshShell Set WshShell = WScript.CreateObject("WScript.Shell") Set objFSO = CreateObject("scripting.FilesystemObject") Set File = objFSO.OpenTextFile("c:\temp.txt", 2, True) Const FOR_APPENDING = 8 Const FOR_READING = 1 Const FOR_WRITING = 2 listFTP 'recuperation liste des fichiers presents sur FTP Wscript.Sleep 1000 findext 'recuperation de l'extension libre Wscript.Sleep 1000 listFTP 'Nouvelle recuperation des fichiers presents sur FTP Wscript.Sleep 1000 verif 'verification extension toujours dispo Wscript.Sleep 1000 create 'création du fichier Wscript.Sleep 1000 sendfile 'envoi du fichier '******************************************************************************** 'Fonction list FTP Function listFTP() With File .WriteLine "open ftp.xxxxxxx.com" .WriteLine "USER xxxxxxxx" .WriteLine "xxxx" .WriteLine "ls -s c:\test.txt" .WriteLine "quit" End With WshShell.Run "ftp -n -s:c:\temp.txt", 0 End function '******************************************************************************** 'Fonction find extension Function findext() n = 1 Dim sTemp, recupext, MyString, Mysep, MyArray, extension, verifext Set recupext = objFSO.OpenTextFile("c:\test.txt",1) Do Until recupext.AtEndOfStream MyString = recupext.ReadLine Mysep = "." MyArray = Split(MyString, Mysep, -1) ' Transforme le chiffre en chaine précéde de zéros (000 à 999) sTemp = Right("000" & CStr(n), 3) ' MsgBox n result = myarray(1) If result = sTemp Then ' MsgBox result & " found" n = n + 1 End If WScript.Echo result Loop 'MsgBox sTemp & " free" 'MsgBox n & " free" extension = sTemp 'extension au format 3 chiffres verifext = n 'extension au format arythmetique 'MsgBox sTemp recupext.Close End Function '******************************************************************************** 'Fonction verification extension toujours disponible Function verif() n = verifext Dim sTemp2 Set recupext = objFSO.OpenTextFile("c:\test.txt",1) Do Until recupext.AtEndOfStream MyString = recupext.ReadLine Mysep = "." MyArray = Split(MyString, Mysep, -1) sTemp2 = Right("000" & CStr(n), 3) result = myarray(1) If result = sTemp2 Then Twice = "KO" End If WScript.Echo result Loop if Twice = "KO" Then 'MsgBox "erreur" findext 'recuperation d'une nouvelle extension Wscript.Sleep 1000 listFTP 'Nouvelle recuperation des fichiers presents sur FTP Wscript.Sleep 1000 verif 'verification extension toujours dispo Wscript.Sleep 1000 End if recupext.Close End function '******************************************************************************** 'Fonction création du fichier Function create() objFSO.MoveFile "C:\FP2010" , "C:\FP2010." & extension End Function '******************************************************************************** 'Fonction envoi du fichier Function sendfile() With File .WriteLine "open ftp.xxxxxxx.com" .WriteLine "USER xxxxxxxx" .WriteLine "xxxx" .WriteLine "PUT " & "C:\FP2010." & extension .WriteLine "quit" End With WshShell.run "ftp -n -s:c:\temp.txt", 0 End function
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionOption Explicit MsgBox findext Function findext() Const ForReading = 1 Dim objFso, objTextFile, strFile, arrLine, i ReDim myArray(0) strFile = "C:\Test.txt" Set objFso = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFso.OpenTextFile(strFile, ForReading) Do While Not objTextFile.AtEndOfStream ReDim Preserve myArray(UBound(myArray) + 1) myArray(UBound(myArray)) = objTextFile.ReadLine Loop objTextFile.Close Set objTextFile = Nothing Set objFso = Nothing For i=UBound(myArray)-1 To 1 Step -1 arrline=Split(myArray(i),".") findext = "Line free is " & Right("000" & CStr(arrLine(1)+1), 3) Exit For Next End Function
Dim objFSO, File, WshShell Dim strContents, strtime, strdate Set WshShell = WScript.CreateObject("WScript.Shell") Set objFSO = CreateObject("scripting.FilesystemObject") Set File = objFSO.OpenTextFile("c:\temp.txt", 2, True) Const FOR_APPENDING = 8 Const FOR_READING = 1 Const FOR_WRITING = 2 strdate = formatdatetime (date,2) strtime = formatdatetime (time,3) SavePathFile = "g:\bal20\log\FP2010.log" Public extension Public verifext Public Twice '"######################################################################################################" ' Initialisation des logs If ObjFSO.FileExists (SavePathFile) Then Set objFile = objFSO.GetFile(SavePathFile) If objFile.Size > 2097152 Then If ObjFSO.FileExists ("g:\bal20\log\FP2010.old") Then ObjFSO.DeleteFile "g:\bal20\log\FP2010.old" End if ObjFSO.MoveFile "g:\bal20\log\FP2010.log" , "g:\bal20\log\FP2010.old" End If End If '"######################################################################################################" 'Recuperation date et heure execution du script jj/mm/AAAA If ObjFso.FileExists (SavePathFile) Then Set OutPutFileTxt = objFSO.OpenTextFile(SavePathFile,FOR_READING,True) strContents = OutPutFileTxt.ReadAll OutPutFileTxt.Close End If Set OutPutFileTxt = objFSO.OpenTextFile(SavePathFile,FOR_WRITING,True) OutPutFileTxt.WriteLine "######################################################################################################" OutPutFileTxt.WriteLine "************************ FP2010 *************************************" OutPutFileTxt.WriteLine strdate & " " & strtime OutPutFileTxt.WriteLine strdate & " " & strtime & " :start up : " & now '"######################################################################################################" ' Traitement OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP" listFTP 'recuperation liste des fichiers presents sur FTP Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de l'extension disponible" findext 'recuperation de l'extension libre Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP pour vérification" listFTP 'Nouvelle recuperation liste des fichiers presents sur FTP Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Vérification si extension : " & extension & " toujours disponible" verif 'verification extension toujours dispo Wscript.Sleep 1000 If twice <> "KO" Then OutPutFileTxt.WriteLine strdate & " " & strtime & "Extension : " & extension & " toujours disponible" OutPutFileTxt.WriteLine strdate & " " & strtime & "Renommage du fichier FP2010 en FP2010." & extension create 'création du fichier Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Envoi du fichier FP2010." & extension sendfile 'envoi du fichier Else 'Recherche d'une nouvelle extension disponible 2eme tentative OutPutFileTxt.WriteLine strdate & " " & strtime & "....................2ème tentative..........................." OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP" listFTP 'recuperation liste des fichiers presents sur FTP WScript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération d'une nouvelle extension disponible" findext Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP pour vérification" listFTP 'Nouvelle recuperation liste des fichiers presents sur FTP Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Vérification si extension : " & extension & " toujours disponible" verif Wscript.Sleep 1000 If twice <> "KO" Then OutPutFileTxt.WriteLine strdate & " " & strtime & "Extension : " & extension & " toujours disponible" OutPutFileTxt.WriteLine strdate & " " & strtime & "Renommage du fichier FP2010 en FP2010." & extension create 'création du fichier Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Envoi du fichier FP2010." & extension sendfile 'envoi du fichier Else 'Recherche d'une nouvelle extension disponible 3eme tentative OutPutFileTxt.WriteLine strdate & " " & strtime & "....................3ème tentative..........................." OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP" listFTP 'recuperation liste des fichiers presents sur FTP WScript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération d'une nouvelle extension disponible" findext Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP pour vérification" listFTP 'Nouvelle recuperation liste des fichiers presents sur FTP Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Vérification si extension : " & extension & " toujours disponible" verif Wscript.Sleep 1000 If twice <> "KO" Then OutPutFileTxt.WriteLine strdate & " " & strtime & "Extension : " & extension & " toujours disponible" OutPutFileTxt.WriteLine strdate & " " & strtime & "Renommage du fichier FP2010 en FP2010." & extension create 'création du fichier Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Envoi du fichier FP2010." & extension sendfile 'envoi du fichier Else 'Recherche d'une nouvelle extension disponible 4eme tentative OutPutFileTxt.WriteLine strdate & " " & strtime & "....................4ème tentative..........................." OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP" listFTP 'recuperation liste des fichiers presents sur FTP WScript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération d'une nouvelle extension disponible" findext Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP pour vérification" listFTP 'Nouvelle recuperation liste des fichiers presents sur FTP Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Vérification si extension : " & extension & " toujours disponible" verif Wscript.Sleep 1000 If twice <> "KO" Then OutPutFileTxt.WriteLine strdate & " " & strtime & "Extension : " & extension & " toujours disponible" OutPutFileTxt.WriteLine strdate & " " & strtime & "Renommage du fichier FP2010 en FP2010." & extension create 'création du fichier WScript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Envoi du fichier FP2010." & extension sendfile 'envoi du fichier Else 'Recherche d'une nouvelle extension disponible 5eme tentative OutPutFileTxt.WriteLine strdate & " " & strtime & "....................5ème tentative..........................." OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP" listFTP 'recuperation liste des fichiers presents sur FTP WScript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération d'une nouvelle extension disponible" findext WScript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP pour vérification" listFTP 'Nouvelle recuperation liste des fichiers presents sur FTP WScript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Vérification si extension : " & extension & " toujours disponible" verif Wscript.Sleep 1000 If twice <> "KO" Then OutPutFileTxt.WriteLine strdate & " " & strtime & "Extension : " & extension & " toujours disponible" OutPutFileTxt.WriteLine strdate & " " & strtime & "Renommage du fichier FP2010 en FP2010." & extension create 'création du fichier WScript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Envoi du fichier FP2010." & extension sendfile 'envoi du fichier Else OutPutFileTxt.WriteLine strdate & " " & strtime & "Echec apres 5 tentative" End if End If End if End if End If OutPutFileTxt.WriteLine strdate & " " & strtime & "FIN de procédure" OutPutFileTxt.Write strContents 'Recuperation du fichier log anterieur '"######################################################################################################" 'Fonction list FTP Function listFTP() With File .WriteLine "open ftp.XXXXXXX.com" .WriteLine "USER XXXXXX" .WriteLine "XXXXXX" .WriteLine "ls -s c:\ftplist.txt" .WriteLine "quit" End With WshShell.Run "ftp -n -s:c:\temp.txt", 0 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération des données dans c:\temp.txt" End Function '"######################################################################################################" 'Fonction find extension Function findext() n = 0 Dim MyString, Mysep, MyArray, recupext, sTemp, rtemp Set recupext = objFSO.OpenTextFile("c:\test.txt",1) Do Until recupext.AtEndOfStream MyString = recupext.ReadLine Mysep = "." MyArray = Split(MyString, Mysep, -1) ' Transforme le chiffre en chaine précéde de zéros (0000 à 9999) sTemp = Right("0000" & CStr(n), 4) ' MsgBox n result = myarray(1) If result = sTemp Then ' MsgBox result & " found" n = n + 1 End If ' WScript.Echo result Loop 'MsgBox n & " free" rTemp = Right("0000" & CStr(n), 4) extension = rTemp 'extension au format 4 chiffres verifext = n 'extension au format arythmetique 'MsgBox rTemp OutPutFileTxt.WriteLine strdate & " " & strtime & "L extension : " & extension & " est disponible" recupext.Close End Function '"######################################################################################################" 'Fonction verification extension toujours disponible Function verif() n = verifext Dim sTemp2 Set recupext = objFSO.OpenTextFile("c:\test.txt",1) Do Until recupext.AtEndOfStream MyString = recupext.ReadLine Mysep = "." MyArray = Split(MyString, Mysep, -1) sTemp2 = Right("0000" & CStr(n), 4) result = myarray(1) If result = sTemp2 Then Twice = "KO" End If ' WScript.Echo result Loop if Twice = "KO" Then 'MsgBox "erreur" End if recupext.Close End Function '"######################################################################################################" 'Fonction création du fichier Function create() objFSO.MoveFile "C:\FP2010" , "C:\FP2010." & extension OutPutFileTxt.WriteLine strdate & " " & strtime & "Fichier : FP2010." & extension & " Prêt à l'envoi" End Function '"######################################################################################################" 'Fonction envoi du fichier Function sendfile() With File .WriteLine "open ftp.XXXXXXX.com" .WriteLine "USER XXXXXX" .WriteLine "XXXXXX" .WriteLine "PUT " & "C:\FP2010." & extension .WriteLine "quit" End With WshShell.run "ftp -n -s:c:\temp.txt", 0 OutPutFileTxt.WriteLine strdate & " " & strtime & "fichier FP2010." & extension & " envoyé à " & now End Function '"######################################################################################################" 'Function Convert WMI Date-Time Values JJ/MM/AAAA Function WMIDateStringToDate(dtmStartDate) WMIDateStringToDate = CDate(Mid(dtmStartDate, 7, 2) & "/" & _ Mid(dtmStartDate, 5, 2) & "/" & Left(dtmStartDate, 4) _ & " " & Mid (dtmStartDate, 9, 2) & ":" & _ Mid(dtmStartDate, 11, 2) & ":" & Mid(dtmStartDate, _ 13, 2)) End Function
ftp -n -s:c:\temp.txt >> c:\log.log
Set WshExec = WshShell.Exec("ftp -n -s:c:\temp.txt") strFTPResult = LCase(WshExec.StdOut.ReadAll) OutPutFileTxt.WriteLine strFTPResult
WshShell.Run "ftp -n -s:c:\temp.txt >> c:\log.log", 0
WshShell.Run "command ftp -n -s:c:\temp.txt >> c:\log.log", 0
If twice <> "KO" Then OutPutFileTxt.WriteLine strdate & " " & strtime & "Extension : " & extension & " toujours disponible" OutPutFileTxt.WriteLine strdate & " " & strtime & "Renommage du fichier FP2010 en FP2010." & extension create 'création du fichier Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Envoi du fichier FP2010." & extension sendfile 'envoi du fichier Else 'Recherche d'une nouvelle extension disponible 2eme tentative OutPutFileTxt.WriteLine strdate & " " & strtime & "....................2ème tentative..........................." OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP" listFTP 'recuperation liste des fichiers presents sur FTP WScript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération d'une nouvelle extension disponible" findext Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP pour vérification" listFTP 'Nouvelle recuperation liste des fichiers presents sur FTP Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Vérification si extension : " & extension & " toujours disponible" verif Wscript.Sleep 1000
Else 'Recherche d'une nouvelle extension disponible 2eme tentative OutPutFileTxt.WriteLine strdate & " " & strtime & "....................2ème tentative..........................." OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération d'une nouvelle extension disponible" findext Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Récupération de la liste des fichiers présents sur le FTP pour vérification" listFTP 'Nouvelle recuperation liste des fichiers presents sur FTP Wscript.Sleep 1000 OutPutFileTxt.WriteLine strdate & " " & strtime & "Vérification si extension : " & extension & " toujours disponible" verif Wscript.Sleep 1000
ftp -n -s:c:\temp.txt >> c:\log.log
Set WshExec = WshShell.Exec("ftp -n -s:c:\temp.txt") strFTPResult = LCase(WshExec.StdOut.ReadAll) OutPutFileTxt.WriteLine strFTPResult
WshShell.Run "ftp -n -s:c:\temp.txt >> c:\log.log", 0
WshShell.Run "command ftp -n -s:c:\temp.txt >> c:\log.log", 0
Do Until recupext.AtEndOfStream MyString = recupext.ReadLine Mysep = "." ' Transforme le chiffre en chaine précéde de zéros (0000 à 9999) sTemp = Right("0000" & CStr(n), 4) MsgBox n If Split(MyString, Mysep, -1)(1) = sTemp Then n = n + 1 End If WScript.Echo result Loop