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



我对VB.net完全陌生,只在中学习了几周,我正在做一个项目,需要使用记事本作为数据库来制作EPOS系统。我可以使按钮的值显示在列表框中,但我有许多按钮,它们都具有不同的值,但每次按下不同的按钮时,只有文本框中的第一个值出现。E.G按下喜力按钮时显示"喜力€5.00",按下Guiness按钮时显示

非常感谢您的帮助!

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,Guiness,4.50,50,Bulmers,5.00,25,

使用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键)

这只是一个基本概念。在现实世界中,我们不会这样做。此外,还有一些检查应该放在正确的位置,以避免由于输入文本格式错误而导致的异常。为了简洁起见,我跳过了所有这些内容。

最新更新