spa*_*rks 6 .net vb.net string file-io parsing
我使用VB.NET的TextFieldParser(Microsoft.VisualBasic.FileIO.TextFieldParser)来读取分隔文件.但是,当我尝试在字段中读取具有连续换行符的字段时,连续的换行符将变为单个新行.我希望保留连续的换行符,但我不确定如何.
这是我正在阅读的一个示例文件,只有一个字段.引号是文件内容的一部分,有三个换行符(包括第2行后的两个连续换行符):
"This is line 1
This is line 2
This is line 4, which follows two consecutive newlines."
Run Code Online (Sandbox Code Playgroud)
这是我用来解析和读取文件的代码:
Dim reader as New Microsoft.VisualBasic.FileIO.TextFieldParser(myFile, System.Text.Encoding.Default)
reader.TextFieldType = FileIO.FieldType.Delimited
reader.SetDelimiters(",")
Dim fields As String() = reader.ReadFields
Dim line As String = fields(0)
Run Code Online (Sandbox Code Playgroud)
这是"行"变量的内容.请注意,现在只有两个新行:
This is line 1
This is line 2
This is line 4, which follows two consecutive newlines.
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能保留连续的换行符?
首先,根据 MSDN http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.readfields.aspx空白行将被忽略:
如果 ReadFields 遇到空行,则会跳过它们并返回下一个非空行。
我相信您需要做的是使用 ReadLine http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.readline.aspx,然后循环结果。
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\ParserText.txt")
MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
MyReader.Delimiters = New String() {","}
Dim currentRow As String
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadLine()
'Manipulate line...
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message & " is invalid. Skipping")
End Try
End While
End Using
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4695 次 |
| 最近记录: |