2016-03-27 7 views
1

Ich habe diesen Teil des Codes in ein Visual Basic-Projekt ...VB.NET - Erhöhen Sie Variablen in For-Anweisung

 Dim fileReader1 = My.Computer.FileSystem.ReadAllText(openFileDialog1.FileName) 
     Dim Part1A = "<b id=""Blahblah"">" 
     Dim Part1B = "</b>" 
     Dim fileSplit1 = fileReader1.Split(New String() {Part1A}, StringSplitOptions.None) 
     fileReader1 = fileSplit1.Last 
     fileSplit1 = fileReader1.Split(New String() {Part1B}, StringSplitOptions.None) 
     fileReader1 = fileSplit1.First 

... und ich versuche, eine Schleife zu machen, es Zahl zu erhöhen 1 für alle Variablen. So etwas wie ...

  For i As Integer = 1 To 10 
       Dim ("fileReader" & i) = My.Computer.FileSystem.ReadAllText(openFileDialog1.FileName) 
       ... 
      Next 

... aber ich bekomme Fehler! Irgendeine Idee wie sollte die Syntax sein?

Antwort

3

Leider möchten Variablen nicht so genannt werden. Sie können jedoch ein Array verwenden:

Dim fileReader(10) as String 

For i As Integer = 1 To 10 
    fileReader(i) = My.Computer.FileSystem.ReadAllText(openFileDialog1.FileName) 
    Dim Part1A = "<b id=""Blahblah"">" 
    Dim Part1B = "</b>" 
    Dim fileSplit1 = fileReader(i).Split(New String() {Part1A}, StringSplitOptions.None) 
    fileReader(i) = fileSplit1.Last 
    fileSplit1 = fileReader(i).Split(New String() {Part1B}, StringSplitOptions.None) 
    fileReader(i) = fileSplit1.First 
Next 

Der Rest des Codes wäre schön, würden Sie müssen nur jede Instanz fileReader1 zu Filereader (i) ändern.

Wenn es notwendig ist, für Part1A und Part1B eindeutige Werte für jedes i haben zu sein, würden Sie ein Array in der gleichen Art und Weise machen:

Dim fileReader(10) as String 
Dim PartA(10) as String 
Dim PartB(10) as String 

For i As Integer = 1 To 10 
    fileReader(i) = My.Computer.FileSystem.ReadAllText(openFileDialog1.FileName) 
    Dim PartA(i) = "<b id=""Blahblah"">" 
    Dim PartB(i) = "</b>" 
    Dim fileSplit1 = fileReader(i).Split(New String() {PartA(i)}, StringSplitOptions.None) 
    fileReader(i) = fileSplit1.Last 
    fileSplit1 = fileReader(i).Split(New String() {PartB(i)}, StringSplitOptions.None) 
    fileReader(i) = fileSplit1.First 
Next 

es nicht notwendig ist, jedoch zu setzen TeilA und TeilB in Arrays, wenn sie immer denselben Wert haben, den sie in dem von Ihnen angegebenen Beispiel haben. Wenn das Beispiel so bleibt, ist es nur notwendig, fileReader1 in fileReader (i) zu ändern.

+1

Ich kann die gleiche Syntax für diesen Teil auch '{Part1B}'? etwas wie das '{Part (i) B}'? –

+1

Ich brauche auch ein Beispiel für diesen Fall 'Dim Part1A'. –

+2

Ja, das würde genauso funktionieren, Sie würden nur PartA (i) und PartB (i) verwenden. Sie sollten den Array-Index am Ende der Variablen beibehalten. Ich werde meine Antwort aktualisieren, um diese Änderung zu zeigen – Dustin

Verwandte Themen