1 REM Ins{nd av Johan Olofsson <5809> 1987-08-01 17.52.29 (DUMP) 10 ! CompBas 20 ! j{mf|r tv} bas-filer 30 ! redovisar om radnummer saknas i den ena filen 40 ! - eller om raderna i filerna {r olika 50 ! 60 ! 1987 03 09 Johan Olofsson 70 ! 80 ! ------------------------------------------------- 90 INTEGER : EXTEND 100 DIM Rad$(1:2)=160,L$(1:2)=1,R$(1:2)=2,Inrad$=200,Str$=160 110 ; : ; 'C O M P A R E - B A S' : ; ' j{mf|r tv} B A S -filer' : ; 120 INPUT 'Filnamn1, filnamn2: 'Fil$(1),Fil$(2) 130 Fil$(1)=FNBastype$(Fil$(1)) : Fil$(2)=FNBastype$(Fil$(2)) 140 OPEN Fil$(1) AS FILE 1 : OPEN Fil$(2) AS FILE 2 150 P1=0 : P2=P1 160 POSIT #1,P1 : POSIT #2,P2 170 Z=FNL{srad(1)+FNL{srad(2) 200 ! 201 DEF FNBastype$(Str$) 202 IF INSTR(2,Str$,'.') RETURN Str$ 203 RETURN Str$+'.BAS' 204 FNEND 210 DEF FNL{srad(Fil) 220 ON ERROR GOTO 290 225 INPUT LINE #Fil,Inrad$ 230 Blpos=INSTR(2,Inrad$,' ') 235 R.(Fil)=VAL(LEFT$(Inrad$,Blpos)) 240 WHILE MID$(Inrad$,Blpos,1)=' ' 242 Blpos=Blpos+1 244 WEND 250 L(Fil)=LEN(Inrad$)-2-Blpos 270 Rad$(Fil)=RIGHT$(Inrad$,Blpos) 280 RETURN L(Fil) 290 R.(Fil)=256.*256. 295 RETURN 0 300 FNEND 310 DEF FNSkiprad(Fil) 320 ; 'Omaka' TAB(Fil*10) R.(Fil) TAB(20+Fil*10) '(' L(Fil) ')' ! NUM$(L(Fil)) ')' 330 Z=FNL{srad(Fil) 340 RETURN 0 350 FNEND 360 DEF FNPositionera(Idstring$) 370 IF Obs ; : Obs=0 380 IF NOT Flag ; TAB(1) Idstring$ TAB(10); : Flag=-1 390 IF PEEK(65362)>70 ; TAB(10); 400 RETURN 0 410 FNEND 500 ! * * * * * * * * * * * * * * * * * * * 510 WHILE -1 520 WHILE Rad$(1)=Rad$(2) 530 Z=FNPositionera('identiska') 540 ; R.(1); 550 IF R.(1)<>R.(2) THEN ; ' = ' R.(2); 560 Z=FNL{srad(1)+FNL{srad(2) 570 IF R.(1)<65536. WEND 580 IF Flag THEN Flag=0 : Obs=0 590 ! 600 WHILE R.(1)=R.(2) AND Rad$(1)<>Rad$(2) AND ABS(L(1)-L(2))<2 610 Z=FNPositionera('lika') 620 ; R.(1); 630 Z=FNL{srad(1)+FNL{srad(2) 640 IF R.(1)<65536. WEND 650 IF Flag THEN Flag=0 : Obs=0 660 ! 670 WHILE R.(1)=R.(2) AND Rad$(1)<>Rad$(2) AND ABS(L(1)-L(2))>1 680 IF NOT Obs THEN ; : ; : Obs=-1 690 ; 'olik' TAB(10) R.(1) TAB(20) R.(2); 700 ; TAB(30) '(' L(1) ')' TAB(40) '(' L(2) ')' 705 ; Rad$(1);Rad$(2); 710 Z=FNL{srad(1)+FNL{srad(2) 720 IF R.(1)<65536. WEND 730 ! 740 WHILE R.(1)R.(2) 795 Str$=Rad$(2) 800 IF NOT Obs THEN ; : ; : Obs=-1 810 Z=FNSkiprad(2) 815 ; Str$; 820 WEND 830 ! 840 IF R.(1)<65536. WEND 850 ! 860 ! S L U T 870 !