仅显示文件中的某些文本 - Visual Basic

时间:2014-11-11 11:40:52

标签: visual-studio vba

我想只在我拥有的文本框中显示数字。目前,我的代码读取文本文件并将所有代码添加到文本框中,而不仅仅是所需的文本(这些是数字)。

    tbRecipient.Text = My.Computer.FileSystem.ReadAllText("filepath")

如果有人能指出我正确的方向并告诉我如何解决这个问题,那就太棒了。

我有一个包含以下内容的文件:

Steve, 017876
Alan, 098578
...

我想从文件中获取数字后,只将数字列入文本框。 为此我正在使用:

Dim i As Integer

    For i = 0 To cbRecipients.CheckedItems.Count - 1
        My.Computer.FileSystem.WriteAllText("filepath", cbRecipients.CheckedItems.Item(i) & vbCrLf, True)
    Next
    frmHome.myFunction()

然后在myFunction()下面是:     tbRecipient.Text = My.Computer.FileSystem.ReadAllText(“filepath”)

1 个答案:

答案 0 :(得分:0)

您可以使用此功能:

Function GetFileColumnContents(s_Path As String, ColumnNumber As Long, ColumnDelimiter As String, Optional s_OutputDelimiter As String) As String

On Error GoTo ErrHandler

    Open s_Path For Input As #1     'Open the txt file for readin as Temporary File Number 1
    Do While Not EOF(1)             'Read line bu line until end of file
        Line Input #1, Mystring     'Store the line value in Mystring
        GetFileColumnContents = GetFileColumnContents & s_OutputDelimiter & Split(Mystring, ColumnDelimiter)(ColumnNumber - 1) 'process the string
    Loop
ErrHandler:
    Close #1

End Function

调用subrutine:

tbRecipient.Text = GetFileColumnContents("filepath", 2, ",", vbCrLf)

编辑: linenum = linenum + 1 在函数中是不必要的(上面编辑过的)

s_Path:是txt文件的路径(如“C:\ Test.txt”)

ColumnNumber:是文本文件中的列。如果数据如下:

  • A,123,红色
  • B,456,蓝色

然后ColumnNumber 1是字母,ColumnNumber 2是数字,3是颜色。

(ColumnNumber - 1)是因为split的第一部分有索引0,但ColumnNumber是1

split("A, 123, red",",")(0) 'results to "A"
split("A, 123, red",",")(1) 'results to " 123"

如果要列出文本文件第2列中的项目以及用逗号分隔的结果,请使用逗号作为最后一个参数调用该函数:

tbRecipient.Text = GetFileColumnContents("filepath", 2, ",", ",")