'CSVToJSON
'Purpose : Convert an existing CSV file, to a JSON file.
'Method: drag a file over this script. It will parse your textfile and convert it to a JSON file.
set fso = wscript.createobject("scripting.filesystemobject")
if wscript.arguments.count > 0 then
for each x in wscript.arguments
iLines = 0
strOutFile = x
fso.movefile x, replace(x,".csv", "_input.csv")
set objInFile = fso.opentextfile(replace(x,".csv", "_input.csv"))
set objOutFile = fso.createtextfile(replace(x, ".csv", ".json"))
'read header
objOutFile.writeline"var data={""users"":["
strHeader = objInFile.readline
strHeader = replace(strHeader, """", "")
arrTitles = split(strHeader, "|")
do until objInFile.AtEndOfStream
strLine = objInFile.readline
strLine = replace(strLine, """","")
arrLine = split(strLine, "|")
iCount=0
iLines = iLines + 1
objOutFile.writeline "{"
do while iCount <= ubound(arrTitles)
if iCount < ubound(arrTitles) then
objOutFile.writeline """" & replace(arrTitles(iCount), " ", "_") & """" & ":" & """" & arrLine(iCount) & """" & ","
else
objOutFile.writeline """" & replace(arrTitles(iCount), " ", "_") & """" & ":" & """" & arrLine(iCount) & """"
end if
iCount = iCount +1
loop
objOutFile.writeline "},"
loop
objOutFile.writeline "{"
objOutFile.writeline """O"":""O""}], ""count"":""" & iLines & """"
objOutFile.writeline "}"
next
msgbox "Done."
else
msgbox "drag csv files over this script for it to work !"
end if
External memory from my trainings. I used to teach Business Objects, Internet Development and Hardware at Xylos NV (http://www.xylos.com)
maandag, april 28, 2014
VBScript CSV to JSON
zondag, februari 09, 2014
Business days between two dates (in Business Objects)
A colleague of mine asked me: is it possible to calculate the amount of working days between two dates. Immediately, I thought : of course, but as it turns out, it's not that easy.
A quick google and I found this formula:
A quick google and I found this formula:
=DaysBetween(RelativeDate([Begin];Floor(DayNumberOfWeek([Begin])/6)*(8-DayNumberOfWeek([Begin])));RelativeDate([End];Floor(DayNumberOfWeek([End])/6)*(8-DayNumberOfWeek([End])))) -Floor(DaysBetween(RelativeDate(RelativeDate([Begin];Floor(DayNumberOfWeek([Begin])/6)*(8-DayNumberOfWeek([Begin])));(DayNumberOfWeek(RelativeDate([Begin];Floor(DayNumberOfWeek([Begin])/6)*(8-DayNumberOfWeek([Begin]))))*-1)+1);RelativeDate([End];Floor(DayNumberOfWeek([End])/6)*(8-DayNumberOfWeek([End]))))/7)*2
I'm sure there's an easier way, and I'm working on it, but for the time being, it does the job just nicely. Thanks to this guy's post: http://blog.davidg.com.au/2012/11/workdays-between-two-dates-in-webi.html
Thanks mate. Loved the article.
Peter