Recent Post

QTP - FSO (PART B)


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"

0 comments:

Post a Comment

GAReddy @ OneTestingCenter @ All Articles