Search code examples
batch-filevbscript

Copy First Line On Text File Once It Is Open Then Copy Second Line Once It Is Open Again


Example:

Text Line in Sample.txt

Red
Black
Yellow

Opening Sample.txt Copy First Text Line Only

Result:

Red

Opening Sample.txt Again Copy Second Text Line Only

Result:

Black

Opening Sample.txt Again Copy Third Text Line Only

Result:

Yellow

I Need A Batch File Or Vbscript Thanks


Solution

  • You can create a simple function that uses OpenTextFile and ReadLine to return the desired line from a file:

    Function GetLineFromFile(sFileName, iLineNumber)
    
        Dim objFSO
        Dim objFile
        Dim iLineCounter
        Dim sLine
        
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objFile = objFSO.OpenTextFile(sFileName, ForReading, True)
        
        iLineCounter = 0
        sLine = ""
        
        Do While Not objFile.AtEndOfStream
            sLine = objFile.ReadLine
            iLineCounter = iLineCounter + 1
            If iLineCounter = iLineNumber Then Exit Do
        Loop
    
        GetLineFromFile = sLine
        
    End Function
    

    Then you use a For...Next loop from 1 to 3:

    Private Sub Command1_Click()
        Dim sFileName
        Dim iCounter
        
        sFileName = "C:\Temp\file1.txt"
        
        For iCounter = 1 To 3
            MsgBox GetLineFromFile(sFileName, iCounter)
        Next
    
    End Sub