* IMPORT.PRG written by Michael MacDonald. Last revision 2/25/91 * Compatible with ROBOCOMM 3.x * SET TALK OFF SET CONFIRM ON CLEAR ver=2 IF FILE("up30.dbf") ver=3 ENDIF num=0 @ 1,14 SAY "IMPORT v1.1 written by Michael MacDonald (c)02/15/91" @ 2,6 SAY "A program to import file listings into Robocomm's Downloads database" IF ! FILE("import.dbf") @ 4,6 SAY "IMPORT.DBF must be in the current directory" ? ? QUIT ENDIF mid=SPACE(8) mvolume=SPACE(12) mstatus=SPACE(1) DO WHILE .T. mtf=SPACE(50) @ 4,5 SAY "Text file to import:" @ 4,26 GET mtf PICTURE "@S30!" @ 4,58 SAY "Press ESC to exit" READ IF FILE("&mtf") EXIT ENDIF IF LASTKEY()=27 QUIT ENDIF ? CHR(7) ENDDO DO WHILE .T. @ 5,5 SAY " BBS ID:" @ 5,26 GET mid PICTURE "@!" READ IF LASTKEY()=27 QUIT ELSE EXIT ENDIF ENDDO DO WHILE .T. @ 6,5 SAY " OFFLINE?:" @ 6,26 GET mstatus PICTURE "@!" READ IF mstatus="Y" mstatus="O" @ 6,5 SAY " LOCATION:" @ 6,26 GET mvolume PICTURE "@S8!" READ ELSE mstatus=SPACE(1) ENDIF IF LASTKEY()=27 QUIT ELSE EXIT ENDIF ENDDO mtf=RTRIM(mtf) IF ver=2 @ 4,0 SAY " Opening UPLOADS.DBF " ENDIF IF ver=3 @ 4,0 SAY " Opening UP30.DBF " ENDIF @ 5,0 SAY SPACE(70) @ 6,0 SAY SPACE(70) @ 5,0 SAY " Getting filenames from "+mtf IF AT(".",mtf)=0 mtf=mtf+"." ENDIF IF ver=2 IF ! FILE("uploads.dbf") @ 6,0 SAY " Can't find UPLOADS.DBF" ? ? QUIT ELSE SELECT A USE uploads ENDIF ENDIF IF ver=3 SELECT A USE up30 ENDIF SELECT B USE import APPEND FROM &mtf SDF GOTO TOP msize=RECCOUNT() DO WHILE .NOT. EOF() IF ver=2 @ 6,0 SAY " Adding filenames to UPLOADS.DBF" ENDIF IF ver=3 @ 6,0 SAY " Adding filenames to UP30.DBF" ENDIF @ 6,34 SAY INT((RECNO()/msize)*100) @ 6,44 SAY "%" IF AT(".",file_name)<>0; .AND. SUBSTR(file_date,3,1)="-"; .AND. SUBSTR(file_date,6,1)="-"; .AND. ASC(SUBSTR(length,6,1))>47; .AND. ASC(SUBSTR(length,6,1))<58; .AND. ASC(SUBSTR(length,7,1))>47; .AND. ASC(SUBSTR(length,7,1))<58 EXIT ENDIF SKIP ENDDO mfilename=file_name mlength=length mfiledate=file_date mcdesc=DESC mdesc="" DO WHILE .NOT. EOF() @ 6,34 SAY INT((RECNO()/msize)*100) @ 6,44 SAY "%" SKIP IF file_name=SPACE(12); .AND.length=SPACE(7); .AND.file_date=SPACE(8); .AND..NOT.EOF() IF num< 4 mdesc=mdesc+DESC+CHR(13)+CHR(10) ENDIF num=num+1 LOOP ENDIF num=0 SELECT A APPEND BLANK REPLACE file_name WITH mfilename REPLACE length WITH mlength REPLACE file_date WITH mfiledate REPLACE DESC WITH mcdesc IF ver=2 REPLACE edesc WITH mdesc ENDIF REPLACE bbs_date WITH DATE() REPLACE id WITH mid REPLACE fstatus WITH mstatus REPLACE volume WITH mvolume SELECT B DO WHILE .NOT. EOF() @ 6,34 SAY INT((RECNO()/msize)*100) @ 6,44 SAY "%" IF AT(".",file_name)<>0; .AND. SUBSTR(file_date,3,1)="-"; .AND. SUBSTR(file_date,6,1)="-"; .AND. ASC(SUBSTR(length,6,1))>47; .AND. ASC(SUBSTR(length,6,1))<58; .AND. ASC(SUBSTR(length,7,1))>47; .AND. ASC(SUBSTR(length,7,1))<58 EXIT ENDIF SKIP ENDDO mfilename=file_name mlength=length mfiledate=file_date mcdesc=DESC mdesc="" ENDDO SELECT A IF ver=2 @ 7,0 SAY " Reindexing UPLOADS.DBF" ENDIF IF ver=3 @ 7,0 SAY " Reindexing UP30.DBF" ENDIF INDEX ON DESCEND(DTOS(bbs_date))+id TO ubdate INDEX ON file_name+id TO ufiles INDEX ON fstatus+volume+file_name TO ubbs IF ver=3 INDEX ON IF(TAG,"Y",fstatus) TO utag ENDIF SELECT B ZAP @ 8,0 SAY " All done!" ? ? CLOSE ALL QUIT * * EOF IMPORT.PRG