0

私は現在、VB.NET でハングマン ゲームをコーディングするのに忙しいです。単語リストとして、1520 単語を含むテキストファイルがあり、それぞれが改行で区切られています...

ランダムな単語を取得するために考えられる最善の方法は、Randomize() 関数を使用することです。次に、ランダムに生成された # 行から単語を取得します。

たった今、この方法を見つけるために:

Using parser As New Microsoft.VisualBasic.FileIO.TextFieldParser_
("filepath")
        parser.TextFieldType = FileIO.FieldType.Delimited

改行を区切り文字として使用することはできません...

すべての単語の長さ/幅が異なることを考えると、これも使用できません。

parser.TextFieldType = FileIO.FieldType.FixedWidth

そのランダムな行から単語を抽出するより良い方法はありますか?

そうでない場合、これに使用する区切り記号は何ですか? Office に頼らずにブレークラインをその新しい区切り記号にすばやく変更するにはどうすればよいですか?

また、textfieldparser を使用してリソースからファイルを取得するにはどうすればよいですか? "filepath" の代わりにmy.resources.filenameを使用しようとすると 、「パス内の無効な文字」が原因で ArgumentException が発生しました。

4

2 に答える 2

1

簡単な方法は、テキスト ファイルを文字列コレクションに読み込み、コレクションのランダム インデックスを取得することです。

Dim list As New List(Of String)
Dim Reader As New StreamReader("C:\WordList.txt")
Dim line As String

Do
    line = Reader.ReadLine()
    list.Add(line)
Loop Until line Is Nothing

Reader.Close()
于 2012-05-14T02:35:23.393 に答える
0

File.ReadAllLinesを使用して、すべての単語を文字列配列に読み取ります。1 行のコード:

Dim words() As String = File.ReadAllLines(path)

ランダムな単語を選択するには、Rndを使用します

Randomize()
Dim randomWord As String = words(CInt(Math.Floor(Rnd * words.Length)))
于 2012-05-14T05:53:19.937 に答える