none
ListBoxについて RRS feed

  • 全般的な情報交換

  • ファイルに

    問題数

    問題

    答え

    ボーナス

    ※繰り返し

    が書いてあるファイルを問題だけリストボックスに並べて表示させたいのですが。  

     Do While a > Form3.問題数.Text
                        Dim SkipLine As Integer = a * 3
                        Do While i > SkipLine
                            Reader.ReadLine()
                            i += 1
                        Loop
                        Form3.ListBox1.Items.Add(Reader.ReadLine)
                        Reader.Close()
                        a += 1
                    Loop

    とするとリストボックスに何も表示されないのですが。どうしたらよいでしょうか

     


    • 種類を変更済み 山本春海 2011年5月9日 6:53 自己解決とのことでしたので、ステータスを変更させていただきました。
    2011年4月25日 8:10

すべての返信

  • Reader.ReadLine() の戻り値を変数に代入するようにして、1行1行地道にトレース実行するのが良いと思うのですが、いかがでしょうか?
    2011年4月25日 8:27
  • Do Whileは、条件を満たしている間はループ内を繰り返し実行するものです。与えられた条件を見ると不等号の使い方がおかしいように思います。

    >とするとリストボックスに何も表示されないのですが。どうしたらよいでしょうか

    このような場合はブレークポイントを設置するなどしてステップ実行し、実際に思い通りにコードが動いているか確認してみましょう。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年4月25日 8:27
    モデレータ
  • どんな問題数でも読みこめるようにしたいので地道ちやるのはは避けたいのですが、ブレークポイントをどこにやっても書き込んでくれません。

    2011年4月29日 4:37
  • 「問題数が 1000 を超えるとおかしい」とかいった話ではなく、ListBox に何も表示されないという話ですので、地道にやっても大変ではないと思うのですが。
    問題のループ (外側の Do While) の直前にブレークポイントを置いてトレースすると、ループの中に入らなくてあらら、ということになりそうに思います。
    少なくとも自分の書いたコードが期待通りに動いているかを最小限のトレース実行で確かめるのは、プログラマーとして務めではないかと思うのですが。
    問題数が多くて嫌だというなら、ブレークポイントの置き方や条件で、途中は省略できるわけですし。
    2011年4月29日 4:52
  • 皆さんのおかげで無事解決できました!

    ありがとうございます。


     Do While i < 問題数
              On Error Resume Next
              Form3.ListBox1.Items.Add(Reader.ReadLine)
              Reader.ReadLine()
              Reader.ReadLine()
              i += 1
            Loop
    
    2011年4月29日 5:47
  • エラーが発生しても、なかったことにするのは解決策にならないはずです。

    2011年4月30日 4:52