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