0

学校の課題で、教授が 400 万人の寄付者の名前と 400 万の異なる寄付額を記載したテキスト ドキュメントを渡しました。ドキュメントの形式は、単純に「Name,82」です (数字と名前の間にスペースはありません)。この 4,000,000 人のドナーのリストを使用して、PARSE を使用して上位 10 人のドナーを表示する VB プログラムを作成することになっています。

私は本当に困惑しており、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人くらいなら十分余裕があります。上位エントリのリストと照らし合わせてチェックしたものを読んで、持っているものが 1 つよりも優れていることがわかった場合は、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 つの単語ができました。最初の単語は寄付者の名前で、2 番目の単語は金額です (文字列形式)。上位 10 件のレコードを取得するには、このデータの保存方法と並べ替え方法を管理する必要があります。これにはさまざまな方法があります。

GUIに関しては、ユーザーがファイルを選択してボタンを押してプロセスを開始するためのファイルダイアログを提供することを期待しています。あなたが持っている他のボタンが何のためにあるのかわかりません。

于 2013-11-05T19:58:56.950 に答える