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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| Option Explicit
Dim Titre
Titre = "Extraire n et m lignes"
MsgBox ExtractLineInFile(10,0),64,Titre '===> Erreur n est trop grand
MsgBox ExtractLineInFile(0,10),64,Titre '===> Erreur m est trop grand
MsgBox ExtractLineInFile(2,2),64,Titre
MsgBox ExtractLineInFile(2,3),64,Titre
MsgBox ExtractLineInFile(0,0),64,Titre
MsgBox ExtractLineInFile(1,0),64,Titre
MsgBox ExtractLineInFile(2,0),64,Titre
MsgBox ExtractLineInFile(3,0),64,Titre
MsgBox ExtractLineInFile(4,0),64,Titre
MsgBox ExtractLineInFile(5,0),64,Titre
MsgBox ExtractLineInFile(0,5),64,Titre
MsgBox ExtractLineInFile(0,4),64,Titre
MsgBox ExtractLineInFile(0,3),64,Titre
MsgBox ExtractLineInFile(0,2),64,Titre
MsgBox ExtractLineInFile(0,1),64,Titre
MsgBox ExtractLineInFile(0,0),64,Titre
MsgBox ExtractLineInFile(1,1),64,Titre
MsgBox ExtractLineInFile(1,2),64,Titre
MsgBox ExtractLineInFile(1,3),64,Titre
MsgBox ExtractLineInFile(1,4),64,Titre
MsgBox ExtractLineInFile(2,3),64,Titre
MsgBox ExtractLineInFile(2,2),64,Titre
Function ExtractLineInFile(n,m)
Const ForReading = 1, ForWriting = 2
Dim fso,f,i,j,MyArray,MyText
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
f.Write "1ere Line" & vbCrLf &"2eme Line" & vbCrLf &"VBScript" & vbCrLf & "est Cool !"& vbCrLf &"6 Line" & vbCrLf &"7 Line"
Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
MyArray = Split(f.ReadAll, vbCrLf)
If n > Ubound(MyArray) + 2 Then
Wscript.Echo "n trop grand"
Exit Function
ElseIf m => (Ubound(MyArray) - n + 2) Then
Wscript.Echo "m trop grand"
Exit Function
End If
Mytext = ""
For i = n To Ubound(MyArray) - m
MyText = Mytext & MyArray(i) & vbCrLf
Next
ExtractLineInFile = MyText
WriteLog(ExtractLineInFile)
End Function
Sub WriteLog(strText)
Dim fs,ts,LogFile
Const ForAppending = 8
LogFile = Left(Wscript.ScriptFullName, InstrRev(Wscript.ScriptFullName, ".")) & "log"
Set fs = CreateObject("Scripting.FileSystemObject")
if fs.FileExists(LogFile) Then
fs.DeleteFile LogFile
end if
Set ts = fs.OpenTextFile(LogFile,ForAppending,True)
ts.WriteLine strText
ts.Close
End Sub |
Partager