2017-12-08 20 views
-1

私はこのコードを書くためのより良い方法を見つけようとしていますが、このクリーナーの作り方を理解することはできません。私が過去に使った他の言語では、同じコードをいくつかの変数に適用するのではなく、ループで変数を増やすことができます。VB.netインクリメント変数は可能ですか?

Dim IP0 As String = "" 
    While IP0 < 5 
     IP0 = IP0.Remove(index).Trim 
     index = IP2.IndexOf(" "c) 
     IP0 = IP0 + 1 
    End While 

上記の例では、私が「+1」は、実際に変数自体に追加したい:私は、変数名自体がループを使用して変更または作成されている場合、このような何かを探していたとし。したがって、 "IP0"は "IP1"になり、次に "IP2"となります。これは明らかにコンパイルされません、これを行う方法はVB.netですか?

Dim IP1, IP2, IP3, IP4, IP5, IP6, IP7, IP8, IP9 As String 
IP1 = IP1.Remove(index).Trim 
index = IP2.IndexOf(" "c) 
IP2 = IP2.Remove(index).Trim 
index = IP3.IndexOf(" "c) 
IP3 = IP3.Remove(index).Trim 
index = IP4.IndexOf(" "c) 
IP4 = IP4.Remove(index).Trim 
index = IP5.IndexOf(" "c) 
IP5 = IP5.Remove(index).Trim 
index = IP6.IndexOf(" "c) 
IP6 = IP6.Remove(index).Trim 
index = IP7.IndexOf(" "c) 
IP7 = IP7.Remove(index).Trim 
index = IP8.IndexOf(" "c) 
IP8 = IP8.Remove(index).Trim 
index = IP9.IndexOf(" "c) 
IP9 = IP9.Remove(index).Trim 
Using writer As StreamWriter = New StreamWriter("C:\tempFiles\bigBatch.bat") 

     writer.Write(
      "ping -a " & IP1 & " -n 1 > c:\tempFiles\IP1.txt" & vbNewLine & 
      "ping -a " & IP2 & " -n 1 > c:\tempFiles\IP2.txt" & vbNewLine & 
      "ping -a " & IP3 & " -n 1 > c:\tempFiles\IP3.txt" & vbNewLine & 
      "ping -a " & IP4 & " -n 1 > c:\tempFiles\IP4.txt" & vbNewLine & 
      "ping -a " & IP5 & " -n 1 > c:\tempFiles\IP5.txt" & vbNewLine & 
      "ping -a " & IP6 & " -n 1 > c:\tempFiles\IP6.txt" & vbNewLine & 
      "ping -a " & IP7 & " -n 1 > c:\tempFiles\IP7.txt" & vbNewLine & 
      "ping -a " & IP8 & " -n 1 > c:\tempFiles\IP8.txt" & vbNewLine & 
      "ping -a " & IP9 & " -n 1 > c:\tempFiles\IP9.txt" & vbNewLine) 
    End Using 
Dim IP1, IP2, IP3, IP4, IP5, IP6, IP7, IP8, IP9 As String 
    IP1 = thisArray(3).Trim 
    IP2 = thisArray(4).Trim 
    IP3 = thisArray(5).Trim 
    IP4 = thisArray(6).Trim 
    IP5 = thisArray(7).Trim 
    IP6 = thisArray(8).Trim 
    IP7 = thisArray(9).Trim 
    IP8 = thisArray(10).Trim 
    IP9 = thisArray(11).Trim 
+2

ナンバー3は、あなたが後にしているもので、大きなヒントです... –

+3

は、うーん配列またはリスト – ADyson

+0

を作成する方法グーグル - なぜ 'thisArrayは(3)'動作しますか? 'IP(1)'がうまくいくなら、それは素晴らしいことではないでしょうか? – Enigmativity

答えて

4

ジャストストア: は、ここで私はこのロジックを適用したいと思います私の現在のプロジェクトのカップルの抜粋ですコレクション内の似たような変数String()またはList(Of String)

Dim ipList As New List(Of String) From {"IP1", "IP2", "IP3", "IP4", "IP5", "IP6", "IP7", "IP8", "IP9"} 

For i As Int32 = 0 To ipList.Count - 1 
    Dim ip = ipList(i) 
    Dim indexOfSpace = ip.IndexOf(" "c) 
    If indexOfSpace >= 0 Then ipList(i) = ip.Remove(indexOfSpace) 
Next 
+0

Ok、配列またはリストを通過するForループ。これはまさに私が探していたものです、ありがとう! – user3053446

+1

@ user3053446:あなたが 'IP1'、' IP2'文字列変数を取得し、それらを保持したい場合は、1つのメモ。また、文字列リテラルの代わりに変数を使用してコレクションを初期化することもできます。それで、f.e 'Dim ipArray As String()= {IP1、IP2、IP3、...}' –

関連する問題