-1

わかりました、リストボックスを介して別のカウントに基づいてフォルダーの内容を確認する最良の方法を見つけようとしています。さらに説明しましょう。

これは、2 つの異なる場所にある PDF の数をカウントし、それらを合計して総計を計算する現在のコードです。

    'counts test1 pdfs
    Dim f As String, c As Long
    f = Dir$("\\Test1\PDFs\*.pdf")
    Do While Len(f) <> 0
        c = c + 1
        f = Dir$()
    Loop

    'counts test2 pdfs
    Dim n As String, d As Long
    n = Dir$("\\Test2\PDFs\*.pdf")
    Do While Len(f) <> 0
        d = d + 1
        n = Dir$()
    Loop

    GtotalPDFs = c + d

リストボックスで選択したファイルをカウントする現在のコードは次のとおりです。

    'adds temp1 files
    Dim sum1 As Double
    For Each item As String In Me.ListBox6.Items
        sum1 += Double.Parse(item)
    Next

    'adds temp2 files
    Dim sum2 As Double
    For Each item As String In Me.ListBox7.Items
        sum2 += Double.Parse(item)
    Next

    'adds temp3 files
    Dim sum3 As Double
    For Each item As String In Me.ListBox8.Items
        sum3 += Double.Parse(item)
    Next

    'adds all files together to get a grand total
    Gtotal = sum1 + sum2 + sum3

この前に、リストボックスにリストされているファイルに基づいて PDF を作成する別のプロセスがあります。

私が問題を抱えているのは、Test1 フォルダーと Test2 フォルダーに作成された PDF がリストボックスの数と等しいことを確認することです。このカウントは、次のプロセスを実行する前に一致する必要があります。次のプロセスを実行する前に、両方のカウントが一致するまで待機またはループを探しています。

助言がありますか?

4

2 に答える 2

1

喜んでお手伝いさせていただきますが、何をしようとしているのか、何が問題なのかをさらに説明していただく必要があります。現時点では、何が必要かはあまり明確ではありません。ただし、開始するために、コードにいくつかの明確な改善を加えることができます。

まず、Dir と Len を使用しないでください。これらのメソッドは、VB6 との下位互換性のためにのみ存在し、VB6 で使用するプログラミングの実践方法としては適切ではありませんでした! 次のような System.IO 名前空間のオブジェクトを使用します。

Dim count1 As Integer = Directory.GetFiles("\\Test1\PDFs", "*.pdf").Length
Dim count2 As Integer = Directory.GetFiles("\\Test2\PDFs", "*.pdf").Length

次に、2 番目のコード例で double を使用しているのはなぜですか? それらが単純なファイル数である場合は、倍精度ではなく整数を使用する必要があります。ただし、ここで何をしているのかはまったく明確ではありません。この場合に Double.Parse メソッドが機能する唯一の理由は、リスト内の各項目に数値が含まれている場合です。しかし、あなたの説明では、あたかもファイル名が含まれているかのようにリストについて話しています。

于 2012-06-05T13:16:27.000 に答える
1
Imports System.IO 

Dim PDFFileCount As Integer = 0
Dim ListboxCount As Integer = 0
While Not (PDFFileCount > 0 And PDFFileCount = ListboxCount)
  PDFFileCount = Directory.GetFiles("\\Test1\PDFs", "*.pdf").Count + _
                 Directory.GetFiles("\\Test2\PDFs", "*.pdf").Count
  ListboxCount = ListBox6.SelectedItems.Count + ListBox7.SelectedItems.Count + _
                 ListBox8.SelectedItems.Count
  Application.DoEvents()
End While
于 2012-06-05T13:25:32.417 に答える