我正在编写一个Visual Basic程序,该程序读取名为profit.txt的文件的信息。我的形式具有被设置这样文件 - >打开文件 - 的菜单条>退出从Visual Basic中的文本文件中汇总值
,我停留在现在的节目的部分是这样的:
当用户选择文件 - >打开文件,出现一个打开的文件对话框。如果用户选择除profit.txt之外的任何内容,则会出现一个消息框,告诉他们不能使用该文件,而且没有其他任何操作。如果用户确实选择了profit.txt,那么将该文件中的所有值相加,但不要显示总和。
感谢下面的帮助,我可以打开文件,但不知道如何获得文件中所有元素的总和。直到用户单击某些单选按钮并在文本框中输入数量和复选框时才会显示总和。程序然后使用用户的信息来获得最终的利润,方法是从文件中的值总和中减去所给的金额。
这是我最近的代码。
Option Strict On
Imports System.IO
Public Class Form1
Private Sub menOpen_Click(sender As Object, e As EventArgs) Handles menOpen.Click
Dim ofd As New OpenFileDialog
ofd.Filter = "text files |*.txt|All Files|*.*"
ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then
Dim selectedFileName As String = System.IO.Path.GetFileName(ofd.FileName)
If selectedFileName.ToLower = "profit.txt" Then
Dim line As String
Using reader As New StreamReader(ofd.OpenFile)
While Not reader.EndOfStream
line = reader.ReadLine
Console.WriteLine(line)
End While
End Using
Else
MessageBox.Show("You cannot use that file!")
End If
End If
End Sub
Private Sub menExit_Click(sender As Object, e As EventArgs) Handles menExit.Click
Me.Close()
End Sub
End Class
任何建议将不胜感激。
如果你总是打开同一个文件,为什么让用户必须选择它?改为使用'For Each行作为字符串在File.ReadAllLines(menOpen.FileName)'中循环查看文件'。 – LarsTech
(但使用'File.ReadLines'来代替;它是一个只能一次读取一行的生成器。) – Ryan
对于桌面目录,请设置以下属性:'menOpen.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) '在调用ShowDialog()之前。 – LarsTech