• RSS
  • Facebook
  • Twitter

One Center for all the Testing Need. OneTestingCenter is for all, for all QA, for all Automation. Automation is easy, fun and enriching experience. Happy Learning and Happy Testing!

  • Access to All QA

    At OneTestingCenter, you find lots of books,articles,blogs and detailed guides. Everyone has access to QA. Happy Learning, Happy Testing.

  • Global Trainings

    All the QA/Auotmation trainings are available at OneTestingCenter. QA, Automation, QTP/UFT, Selenium, LoadRunner, QC/ALM, Appium...

  • Automation Learning Fun

    Technology is always evolving. Automation is always challenging. To be frank, Automation is fun, enthusiastic and enrching experience.


    QTP - File Operations

    dim oFSO
    ' creating the file system object
    set oFSO = CreateObject ("Scripting.FileSystemObject")

    'Option Explicit
    ' **********************************************************
    ' Create a new txt file 
    ' Parameters:
    ' FilePath - location of the file and its name
    ' **********************************************************
    Function CreateFile (FilePath)
        ' varibale that will hold the new file object
        dim NewFile
        ' create the new text ile
        set NewFile = oFSO.CreateTextFile(FilePath, True)
        set CreateFile = NewFile
     End Function

    ' **********************************************************
    ' Check if a specific file exist
    ' Parameters:
    ' FilePath - location of the file and its name
    ' **********************************************************
    Function CheckFileExists (FilePath)
        ' check if file exist
        CheckFileExists = oFSO.FileExists(FilePath)
     End Function

    ' **********************************************************
    ' Write data to file
    ' Parameters:
    ' FileRef - reference to the file
    ' str - data to be written to the file
    ' **********************************************************
    Function WriteToFile (byref FileRef,str)
       ' write str to the text file
       FileRef.WriteLine(str)
    End Function

    ' **********************************************************
    ' Read line from file
    ' Parameters:
    ' FileRef - reference to the file
    ' **********************************************************
    Function ReadLineFromFile (byref FileRef)
        ' read line from text file
        ReadLineFromFile = FileRef.ReadLine
    End Function

    ' **********************************************************
    ' Closes an open file.
    ' Parameters:
    ' FileRef - reference to the file
    ' **********************************************************
    Function CloseFile (byref FileRef)
        FileRef.close
    End Function

    '***********************************************************
    ' Opens a specified file and returns an object that can be used to
    ' read from, write to, or append to the file.

    ' Parameters:
    ' FilePath - location of the file and its name
    ' mode options are:
    ' ForReading - 1
    ' ForWriting - 2
    ' ForAppending - 8
    ' **********************************************************
    Function OpenFile (FilePath,mode)
        ' open the txt file and retunr the File object
        set OpenFile = oFSO.OpenTextFile(FilePath, mode, True)
    End Function

    ' **********************************************************
    ' Closes an open file. 
    ' Parameters:
    ' FilePathSource - location of the source file and its name
    ' FilePathDest - location of the destination file and its name
    ' **********************************************************
    Sub FileCopy ( FilePathSource,FilePathDest)
        ' copy source file to destination file
        oFSO.CopyFile FilePathSource, FilePathDest
    End Sub

    ' **********************************************************
    ' Delete a file.
    ' Parameters:
    ' FilePath - location of the file to be deleted
    ' **********************************************************
    Sub FileDelete ( FilePath)

        ' copy source file to destination file
        oFSO.DeleteFile ( FilePath)
    End Sub

    ' **********************************************************
    ' Compare two text files.
    ' Parameters:
    ' FilePath1 - location of the first file to be compared
    ' FilePath2 - location of the second file to be compared
    ' FilePathDiff - location of the diffrences file
    ' ignoreWhiteSpace - controls whether or not to ignore differences in whitespace characters
    ' true - ignore differences in whitespace
    ' false - do not ignore difference in whitespace
    ' Return Value: true if files are identical, false otherwise'
    ' *************************************************************
    Function FileCompare (byref FilePath1, byref FilePath2, byref FilePathDiff, ignoreWhiteSpace)
     
        dim differentFiles
        differentFiles = false

        dim f1, f2, f_diff
        ' open the files
        set f1 = OpenFile(FilePath1,1)
        set f2 = OpenFile(FilePath2,1)
        set f_diff = OpenFile(FilePathDiff,8)

        dim rowCountF1, rowCountF2
        rowCountF1 = 0
        rowCountF2 = 0

        dim str
        ' count how many lines there are in first file
        While not f1.AtEndOfStream
            str = ReadLineFromFile(f1)
            rowCountF1= rowCountF1 + 1
        Wend

        ' count how many lines there are in second file
        While not f2.AtEndOfStream
            str = ReadLineFromFile(f2)
            rowCountF2= rowCountF2 + 1
        Wend

        ' re-open the files to go back to the first line in the files
        set f1 = OpenFile(FilePath1,1)
        set f2 = OpenFile(FilePath2,1)

        ' compare the number of lines in the two files.
        ' assign biggerFile - the file that contain more lines
        ' assign smallerFile - the file that contain less lines
        dim biggerFile, smallerFile
        set biggerFile = f1
        set smallerFile = f2
        If ( rowCountF1 < rowCountF2) Then
            set smallerFile = f1
            set biggerFile = f2
        End If

        dim lineNum,str1, str2
        lineNum = 1
        str = "Line" & vbTab & "File1" & vbTab & vbTab & "File2"
        WriteToFile f_diff,str
         ' loop on all the lines in the samller file
        While not smallerFile.AtEndOfStream
            ' read line from both files
            str1 = ReadLineFromFile(f1)
            str2 = ReadLineFromFile(f2)

       'check if we need to ignore white spaces, if yes, trim the two lines
            If Not ignoreWhiteSpace Then
               Trim(str1)
               Trim(str2)
            End If
     'if there is a diffrence between the two lines, write them to the diffrences file
            If not (str1 = str2) Then
                differentFiles = true
                str = lineNum & vbTab & str1 & vbTab & vbTab & str2
                WriteToFile f_diff,str
            End If
            lineNum = lineNum + 1
        Wend

        ' loop on the bigger lines, to write its line two the diffrences file
        While not biggerFile.AtEndOfStream
            str1 = ReadLineFromFile(biggerFile)
            str = lineNum & vbTab & "" & vbTab & vbTab & str2
            WriteToFile f_diff,str
            lineNum = lineNum + 1
        Wend
     
        FileCompare = Not differentFiles
    End function


    ' ************** Example of using these functions ***********

    FilePath1 = "D:\temp\FSO\txt1.txt"
    FilePath2 = "D:\temp\FSO\txt2.txt"
    FilePathDiff = "D:\temp\FSO\txt_diff.txt"

    d = FileCompare(FilePath1,FilePath2,FilePathDiff,false)

    FilePath = "D:\temp\FSO\txt.txt"

    set fold = FolderCreate ( "D:\temp\FSO\new")

    set f = OpenFile(FilePath,8)
    ' = WriteToFile(f,"test line")
    d = CloseFile(f)


    set f = CreateFile(FilePath)

    Fexist= CheckFileExists(FilePath)
    d = WriteToFile(f,"first line")
    d = WriteToFile(f,"second line")

    d = CloseFile(f)
    FileCopy "D:\temp\FSO\txt.txt","D:\temp\FSO\txt1.txt"
    FileDelete "D:\temp\FSO\txt1.txt"


    Reactions:

    QTP - File Functions


    QTP - File Operations

    dim oFSO
    ' creating the file system object
    set oFSO = CreateObject ("Scripting.FileSystemObject")

    'Option Explicit
    ' **********************************************************
    ' Create a new txt file 
    ' Parameters:
    ' FilePath - location of the file and its name
    ' **********************************************************
    Function CreateFile (FilePath)
        ' varibale that will hold the new file object
        dim NewFile
        ' create the new text ile
        set NewFile = oFSO.CreateTextFile(FilePath, True)
        set CreateFile = NewFile
     End Function

    ' **********************************************************
    ' Check if a specific file exist
    ' Parameters:
    ' FilePath - location of the file and its name
    ' **********************************************************
    Function CheckFileExists (FilePath)
        ' check if file exist
        CheckFileExists = oFSO.FileExists(FilePath)
     End Function

    ' **********************************************************
    ' Write data to file
    ' Parameters:
    ' FileRef - reference to the file
    ' str - data to be written to the file
    ' **********************************************************
    Function WriteToFile (byref FileRef,str)
       ' write str to the text file
       FileRef.WriteLine(str)
    End Function

    ' **********************************************************
    ' Read line from file
    ' Parameters:
    ' FileRef - reference to the file
    ' **********************************************************
    Function ReadLineFromFile (byref FileRef)
        ' read line from text file
        ReadLineFromFile = FileRef.ReadLine
    End Function

    ' **********************************************************
    ' Closes an open file.
    ' Parameters:
    ' FileRef - reference to the file
    ' **********************************************************
    Function CloseFile (byref FileRef)
        FileRef.close
    End Function

    '***********************************************************
    ' Opens a specified file and returns an object that can be used to
    ' read from, write to, or append to the file.

    ' Parameters:
    ' FilePath - location of the file and its name
    ' mode options are:
    ' ForReading - 1
    ' ForWriting - 2
    ' ForAppending - 8
    ' **********************************************************
    Function OpenFile (FilePath,mode)
        ' open the txt file and retunr the File object
        set OpenFile = oFSO.OpenTextFile(FilePath, mode, True)
    End Function

    ' **********************************************************
    ' Closes an open file. 
    ' Parameters:
    ' FilePathSource - location of the source file and its name
    ' FilePathDest - location of the destination file and its name
    ' **********************************************************
    Sub FileCopy ( FilePathSource,FilePathDest)
        ' copy source file to destination file
        oFSO.CopyFile FilePathSource, FilePathDest
    End Sub

    ' **********************************************************
    ' Delete a file.
    ' Parameters:
    ' FilePath - location of the file to be deleted
    ' **********************************************************
    Sub FileDelete ( FilePath)

        ' copy source file to destination file
        oFSO.DeleteFile ( FilePath)
    End Sub

    ' **********************************************************
    ' Compare two text files.
    ' Parameters:
    ' FilePath1 - location of the first file to be compared
    ' FilePath2 - location of the second file to be compared
    ' FilePathDiff - location of the diffrences file
    ' ignoreWhiteSpace - controls whether or not to ignore differences in whitespace characters
    ' true - ignore differences in whitespace
    ' false - do not ignore difference in whitespace
    ' Return Value: true if files are identical, false otherwise'
    ' *************************************************************
    Function FileCompare (byref FilePath1, byref FilePath2, byref FilePathDiff, ignoreWhiteSpace)
     
        dim differentFiles
        differentFiles = false

        dim f1, f2, f_diff
        ' open the files
        set f1 = OpenFile(FilePath1,1)
        set f2 = OpenFile(FilePath2,1)
        set f_diff = OpenFile(FilePathDiff,8)

        dim rowCountF1, rowCountF2
        rowCountF1 = 0
        rowCountF2 = 0

        dim str
        ' count how many lines there are in first file
        While not f1.AtEndOfStream
            str = ReadLineFromFile(f1)
            rowCountF1= rowCountF1 + 1
        Wend

        ' count how many lines there are in second file
        While not f2.AtEndOfStream
            str = ReadLineFromFile(f2)
            rowCountF2= rowCountF2 + 1
        Wend

        ' re-open the files to go back to the first line in the files
        set f1 = OpenFile(FilePath1,1)
        set f2 = OpenFile(FilePath2,1)

        ' compare the number of lines in the two files.
        ' assign biggerFile - the file that contain more lines
        ' assign smallerFile - the file that contain less lines
        dim biggerFile, smallerFile
        set biggerFile = f1
        set smallerFile = f2
        If ( rowCountF1 < rowCountF2) Then
            set smallerFile = f1
            set biggerFile = f2
        End If

        dim lineNum,str1, str2
        lineNum = 1
        str = "Line" & vbTab & "File1" & vbTab & vbTab & "File2"
        WriteToFile f_diff,str
         ' loop on all the lines in the samller file
        While not smallerFile.AtEndOfStream
            ' read line from both files
            str1 = ReadLineFromFile(f1)
            str2 = ReadLineFromFile(f2)

       'check if we need to ignore white spaces, if yes, trim the two lines
            If Not ignoreWhiteSpace Then
               Trim(str1)
               Trim(str2)
            End If
     'if there is a diffrence between the two lines, write them to the diffrences file
            If not (str1 = str2) Then
                differentFiles = true
                str = lineNum & vbTab & str1 & vbTab & vbTab & str2
                WriteToFile f_diff,str
            End If
            lineNum = lineNum + 1
        Wend

        ' loop on the bigger lines, to write its line two the diffrences file
        While not biggerFile.AtEndOfStream
            str1 = ReadLineFromFile(biggerFile)
            str = lineNum & vbTab & "" & vbTab & vbTab & str2
            WriteToFile f_diff,str
            lineNum = lineNum + 1
        Wend
     
        FileCompare = Not differentFiles
    End function


    ' ************** Example of using these functions ***********

    FilePath1 = "D:\temp\FSO\txt1.txt"
    FilePath2 = "D:\temp\FSO\txt2.txt"
    FilePathDiff = "D:\temp\FSO\txt_diff.txt"

    d = FileCompare(FilePath1,FilePath2,FilePathDiff,false)

    FilePath = "D:\temp\FSO\txt.txt"

    set fold = FolderCreate ( "D:\temp\FSO\new")

    set f = OpenFile(FilePath,8)
    ' = WriteToFile(f,"test line")
    d = CloseFile(f)


    set f = CreateFile(FilePath)

    Fexist= CheckFileExists(FilePath)
    d = WriteToFile(f,"first line")
    d = WriteToFile(f,"second line")

    d = CloseFile(f)
    FileCopy "D:\temp\FSO\txt.txt","D:\temp\FSO\txt1.txt"
    FileDelete "D:\temp\FSO\txt1.txt"