我有一个看起来像这样的文本文件:
32 bob
50 willy
32 sarah
50 john
我已将此文本文件加载到我的应用程序中:
Private Sub browsebtn1_Click(sender As Object, e As EventArgs) Handles browsebtn1.Click
Dim filedialog As New OpenFileDialog 'openfiledialog1 is now filedialog'
filedialog.Filter = "Text Document|*.txt" 'filter the openfiledialogs file extension to txt only'
filedialog.Title = "Select Bosvark Log File.." 'openfiledialog title'
If filedialog.ShowDialog = Windows.Forms.DialogResult.OK Then 'if the file is chosen then..'
filepath1.Text = filedialog.FileName 'filepath1 text is file path of selected file'
RichTextBox1.LoadFile(filepath1.Text, RichTextBoxStreamType.PlainText) 'richtextbox1 retrieves the file path and displays the document'
End If
End Sub
我想要做的是有一个按钮,我点击它,一个新的richtextbox将显示我给出的值的数据,例如我有一个文本框,在该文本框中我输入“50”新的richtextbox将显示以下内容:
willy
john
我不期望代码,我需要的只是某种参考或指导。但是如果你想提供代码,那就好了。我一直在寻找这个答案,但没有运气,我熟悉它应该如何工作,因为当我编写PHP代码并使用mysql表时,你可以编写一个查询“SELECT FROM users WHERE username = $ username ”。在vb.net中是否有类似的功能?
答案 0 :(得分:1)
当然VB.NET也有类似的功能,但就像PHP一样,SELECT
命令只能用于SQL数据库。没有内置支持在文本文件上执行SELECT
命令。如果您确实希望将数据存储在SQL数据库而不是文本文件中,以便执行SELECT
命令,则需要查看ADO.NET或LINQ to SQL
如果确实需要将数据存储为文本文件,您可以自己解析数据,例如:
For Each line As String In File.ReadAllLines(filedialog.FileName)
Dim parts() As String = line.Split()
Dim number As String = parts(0)
Dim name As String = parts(1)
'Do something with the parsed values, such as storing them in a List, or Dictionary
Next
或者,您可以使用TextFieldParser
类parse the data for you。但是,如果您的文件采用该类支持的格式,那么这只会起作用。
在任何一种情况下,您都需要将数据加载到内存中的某种数据结构中,例如DataTable
,List
或Dictionary
。由于您提供的信息有限,不可能说哪种数据结构对您的特定情况最有意义。将数据加载到数据结构后,您可以编写一个方法,根据需要将所有数据或该数据的子集输出到RichTextBox
。如何做到这完全取决于您选择的数据结构。