If anyone is interested and do not have or cannot use the Ace OLEDB Provider and alternative is the .NET VisualBasic Text Parser. Uses the dowj.txt file previously attached in another thread but included here.
;Winbatch 2020A
;Parsing csv with VisualBasic Text Parser
;Using Newtonsoft To Create Json output
;Requires Newtonsoft.Json.dll in script folder
;Text Parser should be included with .NET
;Stan Littlefield 2/8/2021
;/////////////////////////////////////////////////////////////////////////////////////
gosub udfs
IntControl(73,1,0,0,0)
delim="," ;for tab-delimited use num2char(9)
folder = dirscript()
file=folder:"dowj.txt"
cFile = Dirscript():"dowj.json"
title = '{ "items": ':@LF
If ! FileExist(file) Then Terminate(@TRUE,"Cannot Continue",file:" is missing")
BoxOpen("Processing ":file,"Setting Up...")
ObjectClrOption('Appbase', Dirscript())
ObjectClrOption("useany","System")
ObjectClrOption("useany","System.Data")
ObjectClrOption("useany","Microsoft.VisualBasic")
;load file into Text Parser and create .NET Data Table
oParser = ObjectClrNew('Microsoft.VisualBasic.FileIO.TextFieldParser',file)
oParser.TextFieldType = ObjectClrType('Microsoft.VisualBasic.FileIO.FieldType',0)
oParser.SetDelimiters(delim)
oTable = ObjectClrNew('System.Data.DataTable')
bTrue = ObjectType( "BOOL", -1 )
bFalse = ObjectType( "BOOL", 0 )
oType = ObjectClrNew('System.Type')
cFields = oParser.ReadFields()
nFields = ArrInfo(cFields,1)
ForEach f in cFields
oTable.Columns.Add(f)
Next
oColumn=0
oCols = oTable.Columns
While ! oParser.EndOfData
cFields = oParser.ReadFields()
BoxText("Parsing Line ":oParser.LineNumber)
oTable.Rows.Add(cFields)
EndWhile
;lod Json serializer and create output from DataTable
ObjectClrOption('use', 'Newtonsoft.Json')
oJson = ObjectClrNew('Newtonsoft.Json.JsonConvert')
oSettings = ObjectClrNew('Newtonsoft.Json.JsonSerializerSettings')
oSettings.DateFormatString = "MM/dd/yyyy"
BoxText("Converting to Json")
oString = ObjectType("BSTR","")
oString = oJson.SerializeObject(oTable,oSettings);
oTable=0
oParser.Close()
oParser.Dispose()
oJson=0
oGC = ObjectClrNew('System.GC')
oGC.Collect(0)
oString = StrReplace(oString,'},{','},':@LF:' {')
oString = StrReplace(oString,'","','",':@LF:' ':'"')
oString = title:oString:"}"
FilePut(cFile,oString)
BoxShut()
If FileExist(cFile) Then Pause("Json File Created",cFile)
Exit
:WBERRORHANDLER
geterror()
Message("Error Encountered",errmsg)
Exit
:udfs
#DefineSubRoutine geterror()
wberroradditionalinfo = wberrorarray[6]
lasterr = wberrorarray[0]
handlerline = wberrorarray[1]
textstring = wberrorarray[5]
linenumber = wberrorarray[8]
errmsg = "Error: ":lasterr:@LF:textstring:@LF:"Line (":linenumber:")":@LF:wberroradditionalinfo
Return(errmsg)
#EndSubRoutine
Return