BASIC C64: archivos relativos (en español)

10 rem*********************************
20 rem* archivo relativo
30 rem* determinar longitud del registro
40 rem* y numero de registros
50 rem*
60 rem* v101 2009-01-13 A.Alonso espanol
90 rem*********************************
100 print "{clear}"
110 input "unidad=";dv
120 input "archivo=";ar$
130 if ar$="" then 120
140 print"abrir canal de comandos"
150 open 15,dv,15,"i0":gosub 9000
160 rl=256:rem record length
170 rl=rl-1
175 print "rl=";rl;
180 if rl<=0 then
190 open 2,dv,2,"0:"+ar$+",l,"+chr$(rl)
200 gosub 9000
210 e2=en:print e2
220 close 2:gosub 9000
230 if e2=50 then 170
240 if e2=0 then print "encontrado":goto 300
250 print "error al buscar"
260 goto 620
300 print "contar registros"
310 open 2,dv,2,"0:"+ar$+",l,"+chr$(rl):gosub 9000
320 lo=1
325 hi=65536:t=-1
330 if lo>hi then 600
335 m=int(lo+((hi-lo)/2))
340 print right$("    "+str$(lo),5);",";right$("    "+str$(hi),5);",";
341 print right$("    "+str$(m),5);
350 h=int(m/256):rem record low byte
360 l=m-h*256:rem record hig byte
370 print#15,"p"+chr$(98)+chr$(l)+chr$(h)+chr$(1)
380 gosub 9000:print en
390 if en=0 then lo=m+1:goto 330
400 if en=50 then hi=m-1:goto 330
410 print en;"=";em$;",";et;",";es
420 goto 610
600 if en=50 then t=hi:goto 610
605 t=lo
610 close 2
620 close 15
630 print "longitud registro=";rl
640 print "registros        =";t
650 end
9000 input#15,en,em$,et,es
9010 if en=0 or en=50 then return
9020 print:print en;",";em$;",";et;","es
9030 stop
9040 return


Built by Text2Html 1