MODULE DESCRIPTION: Routines for testing files and/or directories in SQA Robot.Declarations Constants Global Variables User-Defined Types Routine Details
Function CompareDirectories BasicLib FileTestUtilities Function CompareFilesByPath BasicLib FileTestUtilities Function CompareFilesByInfo BasicLib FileTestUtilities Function SeparateDirectoryEntries BasicLib FileTestUtilities Function SyncFileInfoFIFOS BasicLib FileTestUtilities Function FilterTextFile BasicLib FileTestUtilities
' Text file filter mode constants (for FilterTextFile rountine) Const FILE_FILTER_MODE_DEFAULT As Integer = 0 Const FILE_FILTER_MODE_REGEXP As Integer = 1
(none)
(none)
Function SyncFileInfoFIFOS(aFIFO() As FileInfo, aFIFOInfo As BufferInfo, bFIFO() As FileInfo, bFIFOInfo As BufferINfo, logFac As LogFacility) As Integer DESCRIPTION: Tries to sync up two FIFOS which supposedly have matching entries. The routine requires the FIFO entries were entered in a sorted fashion so that comparison feedback and synchronization can occur appropriately. Example Use: One FIFO contains the FileInfos of a bench directory and another FIFO contains the FileInfos of a new install. This routine helps keep the FileInfo compares in synch when new or missing files are found. PARAMETERS: aFIFO() reference FileInfo() for FIFO A aFIFOInfo reference BufferInfo for FIFO A bFIFO() reference FileInfo() for FIFO B bFIFOInfo reference BufferInfo for FIFO B logFac logFacility to use for reporting errors. RETURNS: the number of errors encountered during synchronization. -1 on generic failure. ERRORS: none Orig Author: Carl Nagle Orig Date: AUG 27, 1999 History: AUG 27, 1999 Original Release JUL 10, 2000 (CANAGL) Modified for new Buffer and FIFO utilities.
Function SeparateDirectoryEntries (path As String _ , dBuffer() As FileInfo, dBufferInfo As BufferInfo _ , fBuffer() As FileInfo, fBufferInfo As BufferInfo) _ As Integer DESCRIPTION: Separate the files in a single directory into separate FIFO buffers. One FIFO will contain all non-directory FileInfos. The other will contain all FileInfos for subdirectories. (.) and (..) directory files are ignored and omitted. This routine does not initialize or clear the FIFOs provided. It pushes new values into the FIFOs. PARAMETERS: path the full path of the directory to parse dBuffer() reference to the directory FIFO to use dBufferInfo reference to the directory FIFO BufferInfo to use fBuffer() reference to the file FIFO to use fBufferInfo reference to the file FIFO BufferInfo to use RETURNS: The total number of entries found in the directory excluding (.) or (..) -1 if the path was not a valid directory ERRORS: none Orig Author: Carl Nagle Orig Date: AUG 27, 1999 History: AUG 27, 1999 Original Release
Function CompareFilesByInfo(aInfo As FileInfo, bInfo As FileInfo, mode As Integer, logFac As LogFacility) As Integer DESCRIPTION: Performs a full compare of two files based on the mode value provided. This will compare the FileInfos AND perform a BINARY_COMPARE of the files if the mode calls for it. Since this is possible the routine exits with failure if either file does not exist even if BINARY_COMPARE mode is not enabled. Use CompareFileInfos if no BINARY_COMPARE is intended. PARAMETERS: aInfo FileInfo reference to the source file to compare bInfo FileInfo reference to the bench file to compare mode which items to compare. See COMPARE CONSTANTS for valid values. logFac LogFacility to log error messages. RETURNS: if non-negative the return value is the number of errors found. -1 if target or bench filename is FileNotFound -3 generic unknown failure ERRORS: none Orig Author: Carl Nagle Orig Date: AUG 27, 1999 History: AUG 27, 1999 Original Release
Function CompareFilesByPath(aPath As String, bPath As String, mode As Integer, logFac As LogFacility) As Integer DESCRIPTION: Performs a full compare of two files based on the mode value provided. This will create two FileInfos based on the provided paths then perform the comparison using CompareFilesByInfo. Use CompareFileInfos if no BINARY_COMPARE is intended. PARAMETERS: aPath full path to the source file to compare bPath full path to the bench file to compare mode which items to compare. See COMPARE CONSTANTS for valid values. logFac LogFacility to log error messages. RETURNS: if non-negative the return value is the number of errors found. -1 if target or bench filename is FileNotFound -3 generic unknown failure ERRORS: none Orig Author: Carl Nagle Orig Date: AUG 27, 1999 History: AUG 27, 1999 Original Release
Function CompareDirectories (target As String, bench As String, doSubs As Integer, mode As Integer, logFac As LogFacility) As Integer DESCRIPTION: Compares a target directory structure against a bench directory structure. Compares file names, lengths, time/date stamps, and contents based on the provided mode value. PARAMETERS: target filename of directory structure to test against the bench bench filename of directory structure to use as the bench doSubs =0 do NOT processes subdirectories. 1 means DO process subdirectories mode items to compare. See the COMPARE CONSTANTS for valid values of mode. Note that usually you should not include PATH_COMPARE within the mode value since they are almost always different. logFac LogFacility to log errors messages. RETURNS: if non-negative the return value is the number of errors found. -1 if target or bench filename is FileNotFound -2 if target or bench filename is NOT A DIRECTORY -3 generic unknown failure ERRORS: none Orig Author: Carl Nagle Orig Date: AUG 27, 1999 History: AUG 27, 1999 Original Release JUL 10, 2000 (CANAGL) Modified for new Buffer and FIFO utilities.
Function ApplyRegExpFileFilter ( _ source As String, _ target As String, _ pattern As String, _ replacewith As String ) As Integer DESCRIPTION: Applies a regular expression filter on a text file. The function parses the source file, replaces all occurences of text that match the specified pattern with a specified string, and saves the parsed text to a new file. PARAMETERS: source Required. Full path to the file to be filtered. target Required. Full path to the file to save the filtered text to. If file exists, it is overwriten. Use the same spec as source to save changes to the original file. pattern Required. Regular expression pattern to search for. Must not be empty. replacewith Required. String to replace the matching patterns with. "" to remove the matching patterns. RETURNS: 0 if successful; 1 if failed (specified file not found; invalid parameters etc). ERRORS: none Orig Author: Yuesong Wang Orig Date: NOV 11, 2002 History: NOV 11, 2002 Original Release
Function FilterTextFile ( _ source As String, _ target As String, _ Optional mode, _ Optional option1, _ Optional option2, _ Optional option3 ) As Integer DESCRIPTION: Filters the text content of a file based on provided mode and options. The text content of the source file is read in, filtered (i.e. transformed/modified in most cases) and saved to the target file. PARAMETERS: source Required. Full path to the file to be filtered. target Required. Full path to the file to save the filtered text to. If file exists, it is overwriten. Use the same spec as source to save changes to the original file. mode Optional. Numeric value that indicates the filter mode. One of the valid FILE_FILTER_MODE constants defined by the library. See table below for a complete list of supported modes. If omitted, FILTER_MODE_DEFAULT is used. option1 Optional. Variant value that indicates a parameter for mode. Depending on mode, this has different meanings. See table below. option2 Optional. Variant value that indicates a parameter for mode. Depending on mode, this has different meanings. See table below. SUPPORTED FILTER MODE AND FILTER OPTIONS MODE OPTIONS COMMENT ======================================================================== DEFAULT NONE No filtering. source is copied to target unchanged. REGEXP 1 - PATTERN All occurences of regular expression Required; String PATTERN in source will be replaced 2 - REPLACEMENT with REPLACEMENT. Default value for Optional; String REPLACEMENT is "", i.e. to remove 3 - IGNORECASE all text matching PATTERN. Set IGNORECASE Optional; Integer to True (-1) to do case-insensitive seach when matching pattern. Default is False (0). RETURNS: 0 if successful; 1 if failed (specified file not found; invalid mode/option spec etc). ERRORS: none Orig Author: Yuesong Wang Orig Date: NOV 11, 2002 History: NOV 11, 2002 Original Release
Copyright (C) SAS Institute GNU General Public License: http://www.opensource.org/licenses/gpl-license.php ==============================================================================