Hi all I am writing a program that turns a text weather forecast into tabular data. I use regex to split the forecast into elements, then place then into an array with a few loops. I am having one problem though. I use a loop to place the max temp and min temp into the array and fill in the values in between, but I can't figure out how to fill the values in on either side of the temps. here is my code

Code:
 

PublicSub CreateTemps()

 

Dim I, x AsInteger

 

'Holds the Values from the regex of teh temperatures

 

Dim HighTime, LowTime, HighTemp, LowTemp AsInteger

 

'first time cooisides with whatever time taf starts at

 

Dim time1, time2 AsInteger

 

 

 

'Holds the diffrences between times and temps

 

Dim TimeDiff, TempDiff AsInteger

 

Dim Counter AsInteger

 

'Calculates the numarical values for the high and low temp times

 

If TabDataGrid(2, 0) - TempCollection.Groups("HIGHT").Value <= 0 Then

 

HighTime = Abs(TabDataGrid(2, 0) - TempCollection.Groups("HIGHT").Value)

 

Else : HighTime = Abs((TabDataGrid(2, 0) - TempCollection.Groups("HIGHT").Value) - 24)

 

EndIf

 

 

 

If TabDataGrid(2, 0) - TempCollection.Groups("LOWT").Value <= 0 Then

 

LowTime = Abs(TabDataGrid(2, 0) - TempCollection.Groups("LOWT").Value)

 

Else : LowTime = Abs((TabDataGrid(2, 0) - TempCollection.Groups("LOWT").Value) - 24)

 

EndIf

 

'these are the temperature values

 

LowTemp = TempCollection.Groups("LOW").Value

 

HighTemp = TempCollection.Groups("HIGH").Value

 

'Diffrences between temps and temp times

 

TempDiff = Abs(LowTemp - HighTemp)

 

TimeDiff = Abs(HighTime - LowTime)

 

'The tempdiff divided by the timediff give you the interval between each temp 

 

Counter = Round((TempDiff / TimeDiff), 0)

 

'creates array of temps from the low temp to the high temp

 

' their are 2 becuase there are 3 diffrent forecasts 11Z,19Z,03Z The high temp won't always be first

 

For I = LowTime + 1 To TimeDiff

 

TabDataGrid(12, I) = LowTemp

 

LowTemp += Counter

 

TabDataGrid(12, LowTime) = TempCollection.Groups("LOW").Value

 

TabDataGrid(12, HighTime) = TempCollection.Groups("HIGH").Value

 

Next I

 

For I = HighTime To TimeDiff

 

TabDataGrid(12, I) = HighTemp

 

HighTemp -= Counter

 

TabDataGrid(12, LowTime) = TempCollection.Groups("LOW").Value

 

TabDataGrid(12, HighTime) = TempCollection.Groups("HIGH").Value

 

Next I

 

EndSub