Function Main() 'Flat File Pre-Scrub PrivateShare = DTSGlobalVariables("gblPrivateShare").Value & "\Download\History\Actuals\" PublicShare = DTSGlobalVariables("gblPublicShare").Value Set AnFSO = CreateObject("Scripting.FileSystemObject") On Error Resume Next Set TheFile = AnFSO.GetFile(PublicShare & "\BYLOAN.CSV") If Err.Number <> 0 Then ToUser = Msgbox("ERROR: Flat File is missing! Call Randy Smith 425-717-5078 ASAP! :(", 16, "Monday Run FlatFile Pre-Scrub Task") On Error Goto 0 Main = DTSTaskExecResult_Failure Exit Function End If Set TheInputFile = TheFile.OpenAsTextStream(1) OutPutBuffer = "" CurrentLineCount = 0 DelimiterErrorCount = 0 DelimiterErrors = "" Report = "" & vbcrlf & vbcrlf Do While Not TheInputFile.AtEndOfStream InputBuffer = TheInputFile.ReadLine CurrentLineCount = CurrentLineCount + 1 ' Delete extra comma in employee field and get rid of white space LastCommaPosition = 1 CommaCount = 0 Do LastCommaFoundPosition = InStr(LastCommaPosition, InputBuffer, ",", 1) If LastCommaFoundPosition > 0 Then CommaCount = CommaCount + 1 Select Case CommaCount Case 5 EmployeeNameFieldStart = LastCommaFoundPosition + 1 Case 6 EmployeeNameFieldEnd1 = LastCommaFoundPosition - 1 Case 7 EmployeeNameFieldEnd2 = LastCommaFoundPosition - 1 End Select LastCommaPosition = LastCommaFoundPosition + 1 Else Exit Do End If Loop While Not LastCommaPosition > Len(InputBuffer) Select Case CommaCount Case 22 If Right(InputBuffer, 1) = "," Then InputBuffer = left(InputBuffer, Len(InputBuffer) - 1) Else InputBuffer = Left(InputBuffer, EmployeeNameFieldStart - 1) & _ Replace(InputBuffer, ",", "", EmployeeNameFieldStart, 1, 1) InputBuffer = Replace(Left(InputBuffer, EmployeeNameFieldStart - 1), " ", "", 1, -1, 1) & _ Replace(Trim(Mid(InputBuffer, EmployeeNameFieldStart, _ EmployeeNameFieldEnd2 - EmployeeNameFieldStart)), " ", " ", 1, -1, 1) & _ Replace(InputBuffer, " ", "", EmployeeNameFieldEnd2 + 1, -1, 1) End If Case 21 If CurrentLineCount = 1 Then InputBuffer = Replace(Left(InputBuffer, EmployeeNameFieldStart - 1), " ", "", 1, -1, 1) & _ Replace(Trim(Mid(InputBuffer, EmployeeNameFieldStart, _ EmployeeNameFieldEnd1 - EmployeeNameFieldStart + 1)), " ", "", 1, -1, 1) & _ Replace(InputBuffer, " ", "", EmployeeNameFieldEnd1 + 1, -1, 1) Else InputBuffer = Replace(Left(InputBuffer, EmployeeNameFieldStart - 1), " ", "", 1, -1, 1) & _ Replace(Trim(Mid(InputBuffer, EmployeeNameFieldStart, _ EmployeeNameFieldEnd1 - EmployeeNameFieldStart + 1)), " ", " ", 1, -1, 1) & _ Replace(InputBuffer, " ", "", EmployeeNameFieldEnd1 + 1, -1, 1) End If Case Else DelimiterErrorCount = DelimiterErrorCount + 1 DelimiterErrors = DelimiterErrors & vbcrlf & "Line: " & CurrentLineCount & " CommaCount: " & CommaCount End Select ' Field Name Corrections If CurrentLineCount = 1 Then Select Case Ucase(Trim(Left(InputBuffer, 8))) Case "1RUNDAT," InputBuffer = Replace(InputBuffer, "1RUNDAT", "RUNDATE") Case "RUNDATEE" InputBuffer = Replace(InputBuffer, "RUNDATEE", "RUNDATE") End Select InputBuffer = Replace(InputBuffer, "NAME", "EMPLOYEE") InputBuffer = Replace(InputBuffer, ",ADJ,", ",J,") InputBuffer = Replace(InputBuffer, ",OT,", ",T,") InputBuffer = Replace(InputBuffer, "SSN", "BEMSID") InputBuffer = Replace(InputBuffer, "CLOCK#", "BEMSID") End If ' Add processed line to OutputBuffer OutputBuffer = OutputBuffer & InputBuffer & VbCrLf Loop TheInputFile.Close If DelimiterErrorCount > 0 Then Report = Report & " Delimiter errors encountered for file: " & FlatFileName & ".csv" & vbcrlf & _ " -------------------------------" & vbcrlf & DelimiterErrors Set TheOutputFile = AnFSO.CreateTextFile(PublicShare & "\BYLOAN_ERRORS.TXT", True) TheOutputFile.Write Report TheOutputFile.Close ToUser = Msgbox("DELIMITER ERRORS ENCOUNTERED in flat file - aborting job." & vbcrlf & _ "A Report has been printed to the public share: BYLOAN_ERRORS.TXT", 16, _ "Monday Run Failed") Main = DTSTaskExecResult_Failure Exit Function End If Set TheOutputFile = AnFSO.CreateTextFile(PrivateShare & "\BYLOAN.CSV", True) TheOutputFile.Write OutputBuffer TheOutputFile.Close Set TheFile = Nothing AnFSO.DeleteFile PublicShare & "\BYLOAN.CSV" Set AnFSO = Nothing Main = DTSTaskExecResult_Success End Function