10
20
30
40 :
50 DEFPROCcsv_rd(i%,array$())
60 LOCAL n%:array$()="":A$=GET$#i%:IFA$="":A$=GET$#i%
70 A$=A$+","
80 REPEAT
90 IF LEFT$(A$,2)="=""":A$=MID$(A$,2)
100 IF LEFT$(A$,1)="""" THEN
110 A%=INSTR(A$,""",",2)+1:array$(n%)=MID$(A$,2,A%-3)
120 ELSE
130 A%=INSTR(A$,","):array$(n%)=LEFT$(A$,A%-1)
140 ENDIF
150 A$=MID$(A$,A%+1):n%=n%+1
160 UNTIL A$="" OR n%>DIM(array$(),1)
170 ENDPROC
180 :
190 DEFPROCcsv_wr(o%,array$())
200 LOCAL n%,q%:n%=DIM(array$(),1)
210 FOR A%=0 TO n%:A$=array$(A%)
220 q%=INSTR(A$,",")
230 IF q%=0:q%=(ASCA$=48)AND(INSTR(A$,"/")=0) :
240 IF q%=0:IFVALLEFT$(A$,1):q%=INSTR(A$,"E") :
250 IF q%=0:q%=LENSTR$VALA$>8 :
260 IF q%=0:IFVALA$:q%=INSTR(A$,"/")AND(ASCA$<>48):
270 IF q%=0:q%=LEFT$(A$,1)="-" :
280 IF q%=0:q%=MID$(A$,3,1)=" "ANDMID$(A$,7,1)=" ":
290 IF q%:A$=""""+A$+"""":IFINSTR(A$,",")=0:A$="="+A$
300 BPUT#o%,A$;:IF A%<>n%:BPUT#o%,",";
310 NEXT A%:BPUT#o%,""
320 ENDPROC
330 :