My program is supposed to create a text file, but it is adding invisible unrecognized char(s) to the beginning of the text file. I can only see the invisible unrecognized char(s) when scanned. I was able to get the char(s) to go away by opening with word pad instead of notepad, typing a char, and backspacing then saving. That fixed the file, but I need to correct the code causing it. Am I messing up the file type and its adding a random char?
Here is code for dialog and file name/type:
Try
Dim strLocalFilePath As String
Dim today As String = String.Format("{0:yyyy-MM-dd}", DateTime.Now)
Dim dlgSaveFile As New SaveFileDialog
dlgSaveFile.InitialDirectory = CustomSettings.UserSettings.Settings.EligibilityExport_LocalFilePath
dlgSaveFile.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*"
dlgSaveFile.FilterIndex = 1
dlgSaveFile.OverwritePrompt = True
dlgSaveFile.FileName = "WWW_EligibilityExport-" & today
'Dim saveToFolder = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "SISCO")
'If Not (System.IO.Directory.Exists(saveToFolder)) Then
'System.IO.Directory.CreateDirectory(saveToFolder)
'End If
If dlgSaveFile.ShowDialog = System.Windows.Forms.DialogResult.OK Then
strLocalFilePath = dlgSaveFile.FileName
CustomSettings.UserSettings.Settings.EligibilityExport_LocalFilePath = My.Computer.FileSystem.GetFileInfo(strLocalFilePath).Directory.FullName
CustomSettings.UserSettings.Settings.Save()
Else
Exit Sub
End If
If intSelectedCount > 0 Then
Me.bsEligibilityExportExportCurrentEmployeeDataSelect.EndEdit()
If ExportFile(strLocalFilePath) Then
MessageBox.Show("Export file successfully created!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.RefreshData()
Else
MessageBox.Show("Unable to create export file.", "Error...", MessageBoxButtons.OK)
End If
Else
MessageBox.Show("No rows selected for export.", "Error...", MessageBoxButtons.OK)
End If
Here is code for building the text:
Dim blnReturn As Boolean = False
Dim objHeader = CType(CType(Me.dgvExportSummary.CurrentRow.DataBoundItem, DataRowView).Row, dsEmployee.EligibilityExport_ExportCurrentEmployeeData_SelectRow)
Try
Dim siscoService As Sisco834Service = New Sisco834Service()
bsEligibilityExportExportCurrentEmployeeDataSelect.EndEdit()
Dim isaID As Integer = 100000000
Dim rand As New Random()
Dim header As SiscoHeader = New SiscoHeader(Now, isaID)
header.BeginningStatement.ReferenceIdentification = rand.Next(11110, 99999).ToString()
Dim footer As SiscoFooter = New SiscoFooter(header)
Dim document As SiscoDocument = New SiscoDocument()
document.Header = header
document.Footer = footer
For Each dgvr As DataGridViewRow In Me.dgvExportSummary.Rows
Dim objRowExportSummary = CType(CType(dgvr.DataBoundItem, DataRowView).Row, dsEmployee.EligibilityExport_ExportCurrentEmployeeData_SelectRow)
If objRowExportSummary.Selected Then
Dim eligibilityExport As EligibilityExportCurrent = New EligibilityExportCurrent()
With eligibilityExport
.Address1 = If(objRowExportSummary.IsAddress1Null, String.Empty, objRowExportSummary.Address1)
.City = If(objRowExportSummary.IsCityNull, String.Empty, objRowExportSummary.City)
.DepartmentName = If(objRowExportSummary.IsDepartmentNameNull, String.Empty, objRowExportSummary.DepartmentName)
.DivisionName = If(objRowExportSummary.IsDivisionNameNull, String.Empty, objRowExportSummary.DivisionName)
.DivisionNumber = If(objRowExportSummary.IsDivisionNumberNull, Nothing, objRowExportSummary.DivisionNumber)
.EmployeeID = objRowExportSummary.EmployeeID
.ExportRowData = If(objRowExportSummary.IsExportRowDataNull, String.Empty, objRowExportSummary.ExportRowData)
.FirstName = objRowExportSummary.FirstName
.Header = If(objRowExportSummary.IsHeaderNull, String.Empty, objRowExportSummary.Header)
.HireDate = If(objRowExportSummary.IsHireDateNull, Date.MinValue, objRowExportSummary.HireDate)
.LastName = objRowExportSummary.LastName
.MiddleName = If(objRowExportSummary.IsMiddleNameNull, String.Empty, objRowExportSummary.MiddleName)
.Selected = If(objRowExportSummary.IsSelectedNull, True, objRowExportSummary.Selected)
.State = If(objRowExportSummary.IsStateNull, String.Empty, objRowExportSummary.State)
.WorkcenterName = If(objRowExportSummary.IsWorkcenterNameNull, String.Empty, objRowExportSummary.WorkcenterName)
.ZipCode = If(objRowExportSummary.IsZipCodeNull, String.Empty, objRowExportSummary.ZipCode)
End With
document.Subscribers.Add(siscoService.ConvertEligibilityExportCurrentToSiscoSubscriber(eligibilityExport, footer))
End If
Next
Dim str As String = siscoService.CreateSiscoDocumentString(document)
My.Computer.FileSystem.WriteAllText(strLocalFilePath, str + Environment.NewLine + Environment.NewLine, True)
blnReturn = True