指定水平和垂直移动

时间:2017-03-02 14:22:02

标签: vb.net delimited textfieldparser

我希望能够通过管道(“|”)分隔文本文件,同时控制我读取的行和列。

我以前在MS Access VBA中实现了这一点,目前我正在开始使用VB.NET,但很难完成此任务。

在Access中,VBA允许我将文本文件作为记录集(Dim rs As DAO.Recordset)链接,预定义为分隔符并在行(rs.MoveNextrs.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文件的变量中。

1 个答案:

答案 0 :(得分:1)

对于这可能有所帮助的任何人,我设法在以下两个网站的帮助下解决了这个问题:

Loop Through Files in Directory

Delimit Data

使用这些我创建了以下按钮单击子和附带功能:

 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("|")