1. correction
- Posted by Steven G Astley <sgastley at HOTMAIL.COM> Oct 12, 1999
- 487 views
actually, i inadvertently ommited the comma's in my example. The fileds ARE comma separated values. thx ______________________________________________________ Get Your Private, Free Email at http://www.hotmail.com
2. Re: correction
- Posted by Irv <irv at ELLIJAY.COM> Oct 12, 1999
- 483 views
--Boundary_(ID_KiJ+tHyRzyD2CXScp2jMrg) Content-type: text/plain; charset=iso-8859-1 ----- Original Message ----- From: Steven G Astley <sgastley at HOTMAIL.COM> Subject: correction > actually, i inadvertently ommited the comma's in my example. The fileds ARE > comma separated values. Attached is a small program that can read files like the following, with or without quotes or commas, and massage the data.. --- 991012,21.22, 23.34, 33.56, 32.23, 54321, 12345, 322 -- extraneous data 991013, "12.34" 34.44, "3.1415pi", 14.00, 43211, 23 -- different formatting 991015, 24.44, 32.33, 22.22, 33.45, 325, 23.3,4235,2343,5223 --- The only thing it throws up on is any unquoted text. i.e. 32.33rx won't fly. Quoted text which can't be converted into a number will be considered zero. Hope that helps. Irv --Boundary_(ID_KiJ+tHyRzyD2CXScp2jMrg) Content-type: application/octet-stream; name=test.ex include get.e without warning with trace trace(1) -- set trace to 1 to step thru the program constant Date = 1, Open = 2, Hi = 3, Lo = 4, Last = 5, Oi = 6, Vol = 7 atom file object data sequence array, average file = open("test.dat","r") array = {} --------------------- procedure skiptoEOL() -- in case some lines contain extraneous data --------------------- object c c = ' ' while c != 10 do c = getc(file) end while end procedure --------------------- function readrecord() -- read a line of data --------------------- object item, record record = repeat(0,Vol) for i = 1 to length(record) do item = get(file) if item[1] = GET_SUCCESS then -- valid read if atom(item[2]) then record[i] = item[2] -- valid numeric else item = value(item[2]) -- quoted numeric record[i] = item[2] end if else return -1 end if end for skiptoEOL() return record end function -------------------- procedure readfile() -- read the file -------------------- while 1 do data = readrecord() if atom(data) then exit -- EOF or bad data encountered! else array = append(array,data) end if end while end procedure --------------------------- function sum(sequence data) -- totals each column separately --------------------------- sequence tmp tmp = repeat(0,length(data[1])) for i = 1 to length(data) do tmp += data[i] end for return tmp end function --------------------------- function avg(sequence data) -- compute averages --------------------------- return sum(data) / length(data) end function ------------------------------- -- MAIN ------------------------------- readfile() for j = 1 to length(array) do printf(1,"The values read for %d are: HI:%8.2f LO:%8.2f VOL:%d\n", {array[j][Date],array[j][Hi],array[j][Lo],array[j][Vol]}) end for average = avg(array) printf(1,"%s\n",{repeat('=',65)}) printf(1,"Averages: HI:%8.2f LO:%8.2f VOL:%d\n", {average[Hi],average[Lo],average[Vol]}) --Boundary_(ID_KiJ+tHyRzyD2CXScp2jMrg)--