I am getting the error "Object variable not set" on line 15 when I run my code. I do not get it every time. It seems to be random. I have searched, but cannot find any reason for this. I was having an issue with the variable not getting cleared all the time, so I just added line 42 Set strText = Nothing. My issue with the variable not setting properly went away, but now I have this. Any help would be greatly appreciated. Code is below.
Option Explicit
Dim i, objFSO, objFile, strText, Fields, TimeStamp, Location, MachNum, Amount, Theme, objSMFile, SMLine, p, CSVLine, objReportFile, FileName
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Do while i<>1
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists("C:\Print\output.txt") Then
'*** Clean up CR/LF and Make CSV Variable ***
Set objFile = objFSO.OpenTextFile("C:\Print\output.txt", ForReading)
If Not objFile.AtEndOfStream Then strText = objFile.ReadAll
objFile.Close
' WScript.Sleep 1000
objFSO.CopyFile "C:\Print\output.txt", "C:\Print\outputCopy.txt"
objFSO.DeleteFile("C:\Print\output.txt")
' WScript.Sleep 3000
strText = Replace(strText, vbCrlf, "")
strText = Replace(strText, " ", ";")
' Split by semi-colon into an array...
Fields = Split(strText, ";")
TimeStamp = Fields(0)
Location = Fields(1)
MachNum = Fields(3)
Amount = Fields(4)
'*** Find Machine Number in Slot Master ***
Set objSMFile = objFSO.OpenTextFile("C:\Scripts\SlotMaster.csv", ForReading)
do while not objSMFile.AtEndOfStream
SMLine=objSMFile.readline
p=instr(SMLine, MachNum)
if p>0 then CSVLine = SMLine
Loop
' Split by comma into an array...
Fields = Split(CSVLine, ",")
Theme = Fields(7)
'*** Create Tab Delimited Text File ***
FileName = Year(Now) & "-" & Month(Now) & "-" & Day(Now) & " Jackpots.txt"
If Not objFSO.FileExists("C:\Print\" & FileName) Then
Set objReportFile = objFSO.CreateTextFile("C:\Print\" &FileName)
objReportFile.Close
End If
Set objReportFile = objFSO.OpenTextFile("C:\Print\" & FileName, ForAppending)
objReportFile.Write TimeStamp & vbTab & Location & vbTab & Amount & vbTab & Theme & vbCrLf
objReportFile.Close
Set strText = Nothing
End If
Loop