我希望能够通过管道(“|”)分隔文本文件,同时控制我读取的行和列。
我以前在MS Access VBA中实现了这一点,目前我正在开始使用VB.NET,但很难完成此任务。
在Access中,VBA允许我将文本文件作为记录集(Dim rs As DAO.Recordset
)链接,预定义为分隔符并在行(rs.MoveNext
或rs.MovePrevious
)中移动,同时选择我需要的字段/列(rs!Field1
)。
VB.NET中是否有任何等价物?到目前为止,我只能从MSDN中找到以下内容,但不知道如何操作它:
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(FName)
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters("|")
Dim currentrow As String()
While Not MyReader.EndOfData
currentrow = MyReader.ReadFields()
Dim currentfield As String
For Each currentfield In currentrow
MsgBox(currentfield)
Next
End While
End Using
我希望以后可以将某些字段存储到要写入.CSV文件的变量中。
答案 0 :(得分:1)
对于这可能有所帮助的任何人,我设法在以下两个网站的帮助下解决了这个问题:
Loop Through Files in Directory
使用这些我创建了以下按钮单击子和附带功能:
Route::get('foo/bar/{id?}/{date?}', 'FooController@bar');
然后我用分隔符分割每一行,在那里可以获得每个字段(使用定义的Private Sub Button_Run_Click(sender As Object, e As EventArgs) Handles Button_Run.Click
' Make a reference to a directory
Dim strDir As String = ("C:\")
Dim Dir As New System.IO.DirectoryInfo(strDir)
' Get a reference to each file in that directory
Dim fiArr As System.IO.FileInfo() = Dir.GetFiles()
Dim fri As System.IO.FileInfo
'For each file call the formatter to write to a text file
'Then delete each file after writing it
For Each fri In fiArr
Call Formatter(strDir & fri.Name)
My.Computer.FileSystem.DeleteFile(strDir & fri.Name)
Next fri
End Sub
变量),并修改(使用它的索引)。控制该行就像使用或通过更改values(0)
整数来修改现有变量来创建新变量一样简单。 E.g:
i
使用这个我创建了以下功能:
Dim Nvalues() As String = lines(i + 1).Split("|")