Based on what you have, it appears that your file might look something like
this:
NAME=SENSOR1
SLOPE=0.75
YINTERCEPT=12
....
Another option, that won't force you to implicitly cast your V_Sensor to an
Object (when you add it to the ArrayList) and then back to a V_Sensor
immediately is to use a counter. This works if:
1) Every V_Sensor in your file is guaranteed to have all three entries,
2) NAME is guaranteed to be first every time
Also note the .Split() line - I added ", 2" to it so that it will return a
maximum of two items when is splits your string.
Dim V_FileReader As StreamReader
Dim V_TextLine As String
Dim V_TextSplit(2) As String
Const V_FileName As String = "HDTCHECKFIX.in i"
V_FileReader = File.OpenText(V _FileName)
V_TextLine = V_FileReader.Re adLine
Dim V_Sensor As New AnalogSensor
Dim AnalogSensors As New ArrayList
Dim Counter As Integer = 0
Do While Not V_TextLine = ""
V_TextSplit = V_TextLine.Spli t("=", 2)
' Initialize the counter to 1 when we read in the Name
If V_TextSplit(0). ToUpper = "NAME" Then
V_Sensor = New AnalogSensor
V_Sensor.Name = V_TextSplit(1)
Counter = 1
End If
' Increment the counter by one.
If V_TextSplit(0). ToUpper = "SLOPE" Then
V_Sensor.Slope = Convert.ToDecim al(V_TextSplit( 1))
Counter += 1
End If
' Increment the counter by one. We explicitly convert the
number to
' decimal here.
If V_TextSplit(0). ToUpper = "YINTERCEPT " Then
V_Sensor.YInter cept = Convert.ToDecim al(V_TextSplit( 1))
Counter += 1
End If
' We only add the sensor after the third item is read
If (Counter = 3) Then
Counter = 0
AnalogSensors.A dd(V_Sensor)
End If
V_TextLine = V_FileReader.Re adLine
Loop
V_FileReader.Cl ose()
"blisspikle " <ek******@metfo rming.com> wrote in message
news:11******** *************@l 41g2000cwc.goog legroups.com...
Sorry. I guess that I forgot to mention that the "ANALOGSENS ORS" that
was used throughout the code is a public arraylist. The code below
seems to be working quite well after I messed with it. The part that
is different is in the arraylist using ANALOGSENSORS.A DD(NEW
ANALOGSENSOR()) . I did not (still do not?) know how to create another
instance of the analogsensor class for each do loop when the name in
the text file changes.
<code>
Private Sub Form1_Load(ByVa l sender As System.Object, ByVal e As
System.EventArg s) Handles MyBase.Load
Dim V_Sensor As New AnalogSensor()
Dim V_FileReader As StreamReader
Dim V_TextLine As String
Dim V_TextSplit(2) As String
Const V_FileName As String = "HDTCHECKFIX.in i"
V_FileReader = File.OpenText(V _FileName)
V_TextLine = V_FileReader.Re adLine
Do While Not V_TextLine = ""
V_TextSplit = V_TextLine.Spli t("=")
If V_TextSplit(0). ToUpper = "NAME" Then
AnalogSensors.A dd(New AnalogSensor())
V_Sensor = AnalogSensors(A nalogSensors.Co unt - 1)
End If
If V_TextSplit(0). ToUpper = "SLOPE" Then
V_Sensor.Slope = V_TextSplit(1)
End If
If V_TextSplit(0). ToUpper = "YINTERCEPT " Then
V_Sensor.YInter cept = V_TextSplit(1)
End If
V_TextLine = V_FileReader.Re adLine
Loop
V_FileReader.Cl ose()
End Sub
Public Class AnalogSensor
Public Name As String
Public Slope As Decimal
Public Sub New()
End Sub
End Class
</code>
I guess the way I with that it would work is ....
dim myclass1 as new class
dim myarraylist1 as new arraylist
for i = 0 to 100
myclass1 = new class
myarraylist1(i) .add(myclass1)
myclass1.name = "bill " & i
next
My understanding is not very good yet.