-1

テキストセットを含むWebアプリケーションを構築しています。

例えば。

マヤ文明-TextSet1

マヤ文明は、この地域を特徴付ける高度な相互作用と文化的拡散により、他のメソアメリカ文明と多くの特徴を共有しています。執筆、碑文研究、カレンダーなどの進歩は、マヤに端を発するものではありませんでした。

マヤの影響-TextSet2

しかし、彼らの文明はそれらを完全に発展させました。マヤの影響は、ホンジュラス、ベリーズ、グアテマラ、エルサルバドル西部からメキシコ中部まで、マヤ地域から1,000 km(620マイル)以上離れた場所で検出できます。マヤの芸術と建築には多くの外部からの影響が見られます。これらは、直接的な外部の征服ではなく、貿易と文化交流の結果であると考えられています。

質問

TextSetには、に格納されているため、一意のインデックスがありGridviewます。GridView私が持っているコードは、最初に文字列にある最初のアイテムを格納することによって、の各アイテムまたはインデックスをループしTextSet1ます。

次に、単語の一致数For loopを確認するためにその文字列をループする別の文字列。countMaya

For Each item As GridViewRow In Me.GridViewSearchResult.Rows
        Dim txtStr as Label = DirectCast(item.FindControl("TextSet1"), Label) 
        Dim Str = txtStr.Text.toString 

    For i as Integer = 0 to Str.Length - 1

    Dim count As new Integer 
    count = Regex.Matches (Str, "Maya", RegexOptions.IgnoreCase).Count

    Next
 Next

私が達成しようとしているのは、最初に、プログラムがTextSet1orを処理することから始まり、次に、内の単語の出現Str回数を使用してカウントすることです。の最初の出現時に、セット全体をデータベースに格納してから、ループを終了または停止します。これは、プログラムがに移動しないことを意味します。ループの外側でチェックを実行してから値を呼び出すことを考えましたが、で宣言されています。また、ループの外側を実行しようとしましたが、必要なのは、現在そのループ内にある単語が最初に出現したときにループを停止することです。それをどのように達成できるかについての提案や考えはありますか?countMayaStrMayaStrTextSet2StrFor loopRegex.matchmayaStr

4

2 に答える 2

0

For最初のループと同様の新しいループを実装し、そうでないwhileかどうかをチェックするループがあり、そうcountでない場合はnothing、usingをtrue Insert to database終了します。For loopExit For

于 2013-01-09T13:45:31.590 に答える
-1

あなたが与えた例と問題の説明から判断すると、私はあなたの問題がたくさんあることを示唆します。ここで質問するのではなく、隣に座って話し合うことができる優れたソフトウェア開発者を見つけることが最善の策であることをお勧めします。

ただし、VisualBasicでforループを終了するためのキーワードは「ExitFor」ですが、これは最も内側のループから抜け出すだけです。すべてのネストされたループから抜け出すには、もう少し複雑なものが必要です。

この質問はあなたにいくつかの指針を与えるはずです:vb.netでネストされたブレーク/出口

コード例に関するいくつかのコメント:

For Each item As GridViewRow In Me.GridViewSearchResult.Rows ' Ok
    Dim txtStr as Label = DirectCast(item.FindControl("TextSet1"), Label) ' Ok

    Dim Str = txtStr.Text.toString ' it would be better to declare the type of Str and leave out the .toString. Dim Str as String = txtStr.Text    

    For i as Integer = 0 to Str.Length - 1 ' For every character in the string, why?   
                                           ' Note where is i used within the loop?

    Dim count As new Integer ' Declared afresh for every itteration of the 
                             ' loop and then not used. Probably not what is wanted.

    count = Regex.Matches (Str, "Maya", RegexOptions.IgnoreCase).Count ' Seems ok, but why repeat multiple times?

    ' Neither count nor i have been used.
    Next
 Next

提案された解決策:

For Each item As GridViewRow In Me.GridViewSearchResult.Rows
    Dim txtStr as Label = DirectCast(item.FindControl("TextSet1"), Label)
    Dim Str as String = txtStr.Text    
    Dim count As new Integer = Regex.Matches(Str, "Maya", RegexOptions.IgnoreCase).Count
    If count > 0 then 
       Call StoreInDb(count, str)
       Exit For
    End If
 Next
于 2013-01-09T12:08:15.457 に答える