Dim fs Dim InStream Dim OutStream Dim InputODTable Dim VisumODTable Dim Word(100) 'InputODTable = "C:\Projects\ConvergenceTest\Data_Chicago\TRIPS" 'VISUMODTable = "C:\Projects\ConvergenceTest\Convert_Chicago\trips.fma" InputODTable = "d:\Projects\ConvergenceTest\Data_Chicago\trktrp.dat" VISUMODTable = "d:\Projects\ConvergenceTest\Convert_Chicago\truck.mtx" Set fs = CreateObject("Scripting.FileSystemObject") Dim LineText, Line Dim fromz, toz, col, value Set InStream = fs.OpenTextFile(InputODTable) Set OutStream = fs.CreateTextFile(VisumODTable, True) OutStream.writeline ("$ON") OutStream.writeline ("* OD table translated from Bar-Gera") Line = 0 Do While (InStream.AtEndOfStream = False) LineText = InStream.ReadLine if Mid(LineText,1,6) = "Origin" then FromZ = trim(Mid(LineText,7,10)) else ReadTextLineIntoWord(LineText) i = 1 Do While (Word(i) <> "") ToZ = word(i) Value = word(i+1) i = i + 2 If ToZ <> " " and ToZ <> " " then OutStream.writeline fromz & " " & toz & " " & value end if Loop end if Line = Line + 1 Loop InStream.Close OutStream.Close ' *** SUB ROUTINE *** Private Sub ReadTextLineIntoWord(InString) ' Builds up an array of words. The words are read out of a text string. ' Separator is blank or Tab 'Dim SPos, SPos1, SPos2 , i InitWord(100) i = 1 Do SPos1 = InStr(InString, ";") SPos2 = InStr(InString, ":") 'SPos2 = InStr(InString, Chr(9)) ' Word separator = TAB IF SPos1 > 0 AND SPos2 > 0 AND SPos1 <= SPos2 THEN SPos = SPos1 IF SPos1 > 0 AND SPos2 > 0 AND SPos2 <= SPos1 THEN SPos = SPos2 IF SPos1 > 0 AND SPos2 <= 0 THEN SPos = SPos1 IF SPos1 <= 0 AND SPos2 > 0 THEN SPos = SPos2 IF SPos1 <= 0 AND SPos2 <= 0 THEN SPos = 0 IF SPos > 0 THEN Word(i) = trim(Left(InString, SPos - 1)) InString = Right(InString, Len(InString) - SPos) END IF IF Word(i) <> "" THEN ' no incrementation if double separator i = i + 1 END IF Loop Until SPos = 0 Word(i) = InString End Sub ' *** SUB ROUTINE *** Private Sub InitWord(N) ' Initializes an array of words. Dim i For i = 1 To N Word(i) = "" Next End Sub