好吧,我已成功编码了未格式化的文本数据。我使用逗号作为分隔符,如果我在这里发布它,它可以帮助像我这样的学生。
Try
Using Reader As New TextFieldParser(Application.StartupPath & "\data.txt")
Reader.TextFieldType = FieldType.FixedWidth
Reader.SetFieldWidths(20, 20, 1, 2)
Dim currentRow As String()
While Not Reader.EndOfData
Try
currentRow = Reader.ReadFields()
Dim oWrite As New System.IO.StreamWriter(Application.StartupPath & "\FormattedData.txt")
For Each newString In currentRow
oWrite.Write(newString & ",")
Next
oWrite.WriteLine()
oWrite.Close()
Catch ex As Exception
End Try
End While
End Using
Catch ex As Exception
End Try
现在我也有一个问题:如何在导入访问数据库时省略输出中的最后一个逗号?
答案 0 :(得分:0)
执行此操作的最简单方法(我发现)是为下一遍的最后一条记录编写逗号,但不要在第一个循环中执行此操作:
Dim fFirstEntry As Boolean = True
For Each newString In currentRow
If fFirstEntry Then
fFirstEntry = False
Else
oWrite.Write(",")
End If
oWrite.Write(newString)
Next
答案 1 :(得分:0)
Dim sb As New StringBuilder()
For Each newString In currentRow
sb.Append(newString).Append(",")
Next
sb.Length -= 1
oWrite.Write(sb.ToString())
请注意,StringBuilder比直接字符串操作更有效。后者在堆上生成大量垃圾,后来必须由垃圾收集器收集。