LPARAMETER lcStartProg LOCAL llForce IF pcount()>0 and vartype(lcStartProg)='L' llForce=lcStartProg ENDIF IF vartype(lcStartProg)#'C' lcStartProg='' ENDIF set library to set defa to p SET TALK OFF * SET AUTOSAVE OFF * SET BELL OFF * SET CURRENCY LEFT * SET CURRENCY TO "Kr." * SET DATE ITALIAN * SET EXCLUSIVE OFF * SET HEADINGS OFF * SET HOURS TO 24 * SET NEAR ON * SET STATUS OFF LOCAL lcCaption,lcLocalDrive,lcLockFile,lnArrayElement,lcOldcaption,lcScript,llcopy LOCAL lcStartProg,lnFileCntOrg,lnFileCntNew,lnSelect,lnCounter,llKopier,lcFileToCopy *!* LOCAL lcCaption,lcNetFile,lcLocalDrive,lcLockFile *!* LOCAL lcStartProg,lnFileCnt,lcDrive,lcTextFile,lnSelect #DEFINE CRLF CHR(13)+CHR(10) lnSelect=SELECT() lcOldcaption=_screen.Caption IF USED('oppstart') SELECT oppstart ELSE SELECT 0 USE oppstart shared ENDIF lcScript='' SCAN FOR UPPER(jobbid)='SET' lcScript=lcScript+'SET '+trim(jobb)+' '+target+CRLF ENDSCAN =EXECSCRIPT(lcScript) LOCATE FOR UPPER(jobbid)='OVERSKRIFT' && OVERSKRIFT=Caption lcCaption=TRIM(jobb) IF EMPTY(lcStartProg) LOCATE FOR UPPER(jobbid)='STARTPRG' lcLocalDrive=TRIM(target) lcStartProg=TRIM(target)+TRIM(jobb) ENDIF LOCATE FOR UPPER(jobbid)='LOCKFILE' lcLockFile=TRIM(jobb) CLEAR SCREEN _screen.Caption=lcCaption IF FILE(lcLockFile) WAIT WINDOW 'Can not copy new program files, old are used' NOWAIT TIMEOUT 5 USE SELECT (lnSelect) DO (lcStartProg) _screen.Caption=lcOldcaption RETURN .t. ENDIF SCAN FOR !EMPTY(target) IF ADIR(xx,lcLocalDrive,'D')=0 MD (lcLocalDrive) Endif RELEASE xx ENDSCAN SCAN FOR UPPER(jobbid)='KOPIER' RELEASE laFraFil,laTilFil lnFileCntOrg=ADIR(laFraFil,TRIM(base)+TRIM(jobb)) IF lnFileCntOrg>0 lnFileCntNew=ADIR(laTilFil,TRIM(target)+TRIM(jobb)) FOR lnCounter=1 to lnFileCntOrg lcFileToCopy=laFraFil(lnCounter,1) llkopier=.F. IF lnFileCntNew>0 lnArrayElement=ASCAN(laTilFil,lcFileToCopy,1,0,1,9) IF lnArrayElement=0 OR laTilFil(lnArrayElement,2)#laFraFil(lnCounter,2); OR laTilFil(lnArrayElement,3)<laFraFil(lnCounter,3) llKopier=.T. ENDIF ELSE llKopier=.T. ENDIF IF llKopier or llforce llcopy=.T. WAIT WINDOW (laFraFil(lnCounter,1)) NOWAIT COPY FILE (TRIM(base)+laFraFil(lnCounter,1)) TO (target+laFraFil(lnCounter,1)) ENDIF NEXT ENDIF ENDSCAN IF llCopy WAIT WINDOW 'Finished updating!' TIMEOUT 5 ENDIF USE SELECT (lnSelect) _screen.Caption=lcOldcaption DO (lcStartProg)Structure of OPPSTART.DBF:
Field Name Type Width JOBBID Character 10 JOBB Character 20 BASE Character 20 TARGET Character 20Sample data from OPPSTART.DBF
JOBBID JOBB BASE TARGET ------------------------------------------------------------------ kopier *.prg prog\ C:\BEAS\ kopier *.h prog\ C:\BEAS\ startprg mainwin C:\BEAS\ lockfile lockfile.txt overskrift Oppstart-program set autosave off set bell on set currency left set currency to 'Kr.' set date italian set exclusive off set headings off set hours to 24 set near on set status off set safety off>Hi,