0

所以我有一个学校作业,我的教授给了我们一个文本文件,上面有 4,000,000 名捐赠者的姓名和 4,000,000 不同的捐赠金额。文档的格式只是“姓名,82”(数字和姓名之间没有空格)。有了这个 4,000,000 名捐赠者的列表,我应该创建一个 VB 程序,使用 PARSE 显示前 10 名捐赠者。

我真的很难过,不知道从哪里开始 PARSE。我不是要你只做我的功课,我只是需要帮助来看看在哪里或从什么开始。这就是我到目前为止所拥有的。让我知道我的方向是正确的还是完全错误的。

在此处输入图像描述

    Public Class CsvTopDonorsParser : Inherits TopDonorsParser
ReadOnly donorNames(NumTopDonorsWanted) As String
ReadOnly donationAmounts(NumTopDonorsWanted) As Decimal



Protected Overrides Sub ParseLineFromText(ByVal line As String)



End Sub

Protected Overrides Function GetTopDonorsCore() As String
    ?   
    Return ""
End Function
    End Class
4

2 回答 2

2

尝试读取和存储如此多的条目无法在辅助软件中完成。我认为这就是教授试图开车回家的重点。好吧,我敢肯定,我们有足够的空间容纳 10 人。如果您阅读了一项并对照您的顶级条目列表检查了它,如果您发现您拥有的一项优于一项,那么 10 十个将其替换为您拥有的一项。

Dim FileDlg As FileDialog
Dim FlgRst As System.Windows.Forms.DialogResult
Dim File As System.IO.StreamReader
FileDlg = New OpenFileDialog
FlgRst = FileDlg.ShowDialog()
If (FlgRst = Windows.Forms.DialogResult.OK) Then
    File = New IO.StreamReader(FileDlg.FileName)
    Dim sLine As String
    sLine = File.ReadLine()
    Dim TestArray() As String = sLine.Split(New Char() {","c})
End If

您可以查看 TestArray 的内容,看看是否可以从那里获取它。如果不叫喊

于 2013-11-05T19:53:17.093 回答
1

我真的很难过,不知道从哪里开始 PARSE。

提示:要解析行,您可以使用 Split 方法解析从文件中读取的每一行 (fileRecord)。

Dim words As String() = fileRecord.Split(New Char() {","c})

现在您有 2 个单词,第一个是捐赠者姓名,第二个是金额(但采用字符串格式)。您现在需要管理如何存储和排序这些数据以获得您的前 10 条记录。有不同的方法可以做到这一点。

至于 GUI,我希望您提供一个文件对话框供用户从中选择文件并按下按钮开始该过程。我不确定您拥有的其他按钮是做什么用的。

于 2013-11-05T19:58:56.950 回答