从列表框VB.Net中的记事本显示特定行

时间:2015-02-23 14:56:23

标签: vb.net

我是VB.net的新手,并且只学习了几个星期我正在做一个项目,我需要使用记事本作为数据库制作EPOS系统。我能够使按钮的值出现在列表框中,但是我有许多按钮都具有不同的值,但每次按下不同的按钮时,只显示文本框中的第一个值。 E.G当Heineken按下按钮" Heineken€5.00"按下Guiness按钮时显示" Heineken€5.00"显示

非常感谢任何帮助!

Imports System.IO 

Public Class Form1
    Private Sub btnHeineken_Click(sender As Object, e As EventArgs) Handles btnHeineken.Click
        Dim sr As IO.StreamReader = IO.File.OpenText("DATABASE.txt")
        'File DATABASE.TXT is the the debug folder

        Dim name As String

        Dim stock, price As Double
        name = sr.ReadLine

        stock = CDbl(sr.ReadLine)

        price = CDbl(sr.ReadLine)

        lstBox.Items.Add(name & "" & FormatCurrency(price))
        name = sr.ReadLine

    End Sub

Private Sub BtnGuiness_Click(sender As Object, e As EventArgs) Handles BtnGuiness.Click
    Dim sr As IO.StreamReader = IO.File.OpenText("DATABASE.txt")
    'File DATABASE.TXT is the the debug folder

    Dim name As String

    Dim stock, price As Double
    name = sr.ReadLine

    stock = CDbl(sr.ReadLine)

    price = CDbl(sr.ReadLine)

    lstBox.Items.Add(name & "" & FormatCurrency(price))
    name = sr.ReadLine
End Sub

DATBASE.txt

喜力, 5.00, 20, 吉尼斯, 4.50, 50, Bulmers, 5.00, 25,

1 个答案:

答案 0 :(得分:0)

使用System.IO.File.ReadAllLines()函数获取字符串数组中的所有数据。然后,您可以使用数组索引查找特定行。

注意:您的文本文件必须在每个项目后包含换行符。您发布的文字似乎没有。

例如:

Private Sub BtnGuiness_Click(sender As Object, e As EventArgs) Handles BtnGuiness.Click
    Dim lines = System.IO.File.ReadAllLines("DATABASE.txt")
    dim Parts = lines(1).Split(","c) '1 means 2nd line
    Dim name As String
    Dim stock, price As Double
    name = Parts(0)
    stock = CDbl(Parts(1))
    price = CDbl(Parts(2))

    lstBox.Items.Add(name & "" & FormatCurrency(price))
End Sub

这假设文本文件包含以下内容:

Heineken, 5.00, 20
Guiness, 4.50, 50 
Bulmers, 5.00, 25

(在每行末尾注意ENTER键)

这只是基本概念。在现实世界中,我们不会这样做。此外,还有一些检查应放在适当的位置,以避免输入文本格式错误导致的异常。为简洁起见,我已经省略了所有这些内容。