2015-02-23 60 views
-1

我完全是VB.net的新手,只有几个星期才学习我正在做一个项目,我需要制作一个使用记事本作为数据的EPOS系统基础。我可以使按钮的值出现在列表框中,但是我有许多按钮都有不同的值,但每次按下不同的按钮时,只有文本框中的第一个值出现。 E.G当按下显示“喜力肯€5.00”的Guiness按钮时,当Heineken按钮按下“Heineken€5.00”时显示从列表框中的记事本中显示特定行VB.Net

任何帮助非常感谢!

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,

+0

[VB中的记事本数据库]的可能重复(http://stackoverflow.com/questions/28670892/notepad-database-in-vb) – Heinzi 2015-02-23 15:41:11

回答

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

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