first commit
This commit is contained in:
+292
@@ -0,0 +1,292 @@
|
||||
/************************************************************
|
||||
** **
|
||||
** File: CGW2ABW.prg - modified by P3N 3/5/07 **
|
||||
** **
|
||||
** Moves FILE FROM CGW TO ABW **
|
||||
** **
|
||||
** **
|
||||
************************************************************/
|
||||
|
||||
#include "fivewin.ch"
|
||||
|
||||
#include "FILEIO.ch"
|
||||
|
||||
***********************************************************
|
||||
//** CALL AS:
|
||||
//**
|
||||
//** CGW2ABW.EXE INfile OUTfile
|
||||
|
||||
|
||||
FUNCTION Main( TRANFILEIN, TRANFILEOUT)
|
||||
LOCAL RETVAL
|
||||
|
||||
SET CENTURY ON
|
||||
DEFAULT TRANFILEIN := ''
|
||||
DEFAULT TRANFILEOUT := ''
|
||||
IF EMPTY( TRANFILEIN ) ;
|
||||
.OR. EMPTY( TRANFILEOUT )
|
||||
|
||||
//** .OR. EMPTY( TTRPTIN ) ;
|
||||
//** .OR. EMPTY( TTRPTOUT )
|
||||
MSGSTOP( 'CGW2ABW.EXE Copy of Posting Data Error' + CR_LF(2 ) ;
|
||||
+ 'Calling Parms are:' + CR_LF() ;
|
||||
+ ' PARM 1 IS - "'+ TRANFILEIN + '"' + CR_LF() ;
|
||||
+ ' PARM 2 IS - "'+ TRANFILEOUT + '"' + CR_LF(2) ;
|
||||
+ 'Should be as follows: ' + CR_LF() ;
|
||||
+ 'CGW2ABW fileIn fileOut ' , ;
|
||||
'Program Parameter Error' )
|
||||
RETURN -1
|
||||
ENDIF
|
||||
|
||||
|
||||
RETVAL := MOVE_FILES( TRANFILEIN, TRANFILEOUT )
|
||||
|
||||
//**IF RETVAL = 0
|
||||
//** RETVAL := MOVE_FILES( TTRPTIN, TTRPTOUT )
|
||||
//**ENDIF
|
||||
|
||||
IF RETVAL = 0
|
||||
//** GOOD COPY
|
||||
ELSEIF RETVAL = 1
|
||||
MSGSTOP('CGW2ABW.EXE - COPY NOT SUCCESSFUL'+CR_LF(2) ;
|
||||
+ ' INFILE / PARM 1 IS - "'+ TRANFILEIN + '"' + CR_LF() ;
|
||||
, 'FILE NOT FOUND!')
|
||||
ELSE
|
||||
MSGSTOP('CGW2ABW.EXE - COPY NOT SUCCESSFUL'+CR_LF(2) ;
|
||||
+ 'Calling Parms are:' + CR_LF() ;
|
||||
+ ' PARM 1 IS - "'+ TRANFILEIN + '"' + CR_LF() ;
|
||||
+ ' PARM 2 IS - "'+ TRANFILEOUT + '"' + CR_LF(2) ;
|
||||
, 'Invalid file names?')
|
||||
ENDIF
|
||||
RETURN RETVAL
|
||||
|
||||
|
||||
*****************************************************
|
||||
FUNCTION MOVE_FILES( ORIGFILE, OUTFILE )
|
||||
|
||||
// setup the output file specification - file lenderlink is looking for
|
||||
|
||||
|
||||
LOCAL FILE_ARR := DIRECTORY( ORIGFILE )
|
||||
LOCAL ORIGDIR, ORIGEXT, I, POS, HFILE_OUT, ERASE_RETVAL
|
||||
LOCAL WORKDATA := '', RETVAL := 0, GDGFILE, HFILEIN
|
||||
|
||||
IF EMPTY( FILE_ARR )
|
||||
RETURN 1
|
||||
ENDIF
|
||||
|
||||
POS := RAT( '\', ORIGFILE )
|
||||
IF POS > 0
|
||||
ORIGDIR := SUBS( ORIGFILE, 1, POS )
|
||||
ENDIF
|
||||
|
||||
POS := RAT( '.', ORIGFILE )
|
||||
IF POS > 0
|
||||
ORIGEXT := SUBS( ORIGFILE, POS+1 )
|
||||
ENDIF
|
||||
|
||||
OUTFILE := EVAL_ATSIGNS( OUTFILE )
|
||||
IF FILE( OUTFILE )
|
||||
hFile_OUT := FOPEN( OUTFILE , FO_READWRITE + FO_EXCLUSIVE ) // open the ASCII file EXCLUSIVE
|
||||
ELSE
|
||||
hFile_OUT := FCREATE( OUTFILE , FC_NORMAL ) // CREATE/open the ASCII file
|
||||
ENDIF
|
||||
|
||||
IF hFile_OUT = -1 // CAN'T OPEN
|
||||
MSGSTOP( 'Can not open OUTPUT file - ' +CR_LF()+'"'+OUTFILE +'"' , ;
|
||||
'File Open Error - Invalid File Name?' )
|
||||
RETURN -1
|
||||
ENDIF
|
||||
|
||||
FOR I := 1 TO LEN( FILE_ARR )
|
||||
ORIGFILE := FILE_ARR[ I,1 ]
|
||||
WORKDATA := MEMOREAD( ORIGDIR + FILE_ARR[ I,1 ] )
|
||||
IF LEN( WORKDATA ) > 0
|
||||
WORKDATA := STRTRAN( WORKDATA, CHR(26), '' ) // REMOVE EOF CHAR
|
||||
|
||||
RETVAL := ADD_TO_TEXTFILE( HFILE_OUT, WORKDATA, OUTFILE )
|
||||
IF RETVAL < 0
|
||||
FClose( hFile_OUT ) // close the file
|
||||
RETURN RETVAL // BAD OPEN OR BAD WRITE
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
RETVAL := FClose( hFile_OUT ) // close the file
|
||||
IF RETVAL
|
||||
RETVAL := 0 // GOOD CLOSE
|
||||
ELSE
|
||||
RETVAL := -3 // BAD CLOSE
|
||||
RETURN RETVAL // BAD OPEN OR BAD WRITE
|
||||
ENDIF
|
||||
|
||||
// ALL OK TO HERE
|
||||
FOR I := 1 TO LEN( FILE_ARR )
|
||||
GDGFILE := ORIGDIR + FILE_ARR[ I,1 ]
|
||||
BLD_GDG( GDGFILE, 60 )
|
||||
ERASE_RETVAL := FERASE( GDGFILE )
|
||||
NEXT
|
||||
|
||||
RETURN RETVAL
|
||||
|
||||
*****************************************************
|
||||
|
||||
FUNCTION ADD_TO_TEXTFILE( HFILE_OUT, WORKDATA, OUTFILE )
|
||||
LOCAL RETVAL := 0, NEOF
|
||||
|
||||
NEOF := FSeek( hFile_OUT, 0, FS_END) // what is the length of the file
|
||||
RETVAL := FWrite( hFile_OUT, WORKDATA ) // write HEADER to TXT file
|
||||
IF RETVAL = LEN( WORKDATA ) // GOOD WRITE
|
||||
ELSE
|
||||
RETVAL := -2 // NOT A COMPLETE WRITE
|
||||
ENDIF
|
||||
|
||||
RETURN RETVAL
|
||||
|
||||
*******************************************************
|
||||
|
||||
*********************************************************************
|
||||
FUNCTION CR_LF( NUM_CRLF )
|
||||
LOCAL I, RETVAL := ''
|
||||
|
||||
|
||||
IF NUM_CRLF = NIL
|
||||
NUM_CRLF := 1
|
||||
ENDIF
|
||||
|
||||
FOR I := 1 TO NUM_CRLF
|
||||
RETVAL := RETVAL + CHR(13) + CHR(10)
|
||||
NEXT
|
||||
|
||||
RETURN RETVAL
|
||||
|
||||
|
||||
********************************************************************
|
||||
*BUILD A GDG BACKUP OF A GIVEN FILE
|
||||
* !!!!!!! NOTE: INPUT FILE CAN NOT BE OPEN EXCLUSIVE !!!!!!!
|
||||
********************************************************************
|
||||
// 32-BIT VERSION MOVED HERE 10-10-03 BY DON
|
||||
FUNCTION BLD_GDG(GDG_FILE, GDG_LMT) // FILE(G:LIP0DT), GDG LIMIT
|
||||
LOCAL RETVAL := .T.
|
||||
LOCAL I, PER_POS, TO_FILE, TO_FIL2
|
||||
LOCAL FIL_NAME, FN_LEN, ORG_FILE
|
||||
LOCAL TO_EXT, TO_EXT2
|
||||
LOCAL DBTFILE
|
||||
LOCAL FILEMAJOR, TO_MEMO, TO_MEMO2
|
||||
|
||||
|
||||
GDG_FILE := ALLTRIM( GDG_FILE ) // DON - TRAILING SPACES ARE VALID 32-BIT FILE NAMES 9-2-02
|
||||
|
||||
IF GDG_LMT > 99
|
||||
MSGSTOP( 'GDG Limit is 99 - ' + STR( GDG_LMT , 3 ) + ' Was Passed' + CR_LF(2) ;
|
||||
+ 'Limit Changed to 99 Generations' , ;
|
||||
'GDG Limit Too Large' )
|
||||
GDG_LMT := 99
|
||||
ENDIF
|
||||
|
||||
PER_POS := RAT('.', GDG_FILE)
|
||||
IF PER_POS = 2 //** THIS IS A ..\ CONVENTION IN THE PATH NAME W/O AN EXTENTION PASSED
|
||||
PER_POS := 0 //** DEFAULT THE PERIOD POSITION TO 0
|
||||
ENDIF
|
||||
IF PER_POS > 0
|
||||
FN_LEN := PER_POS-1
|
||||
FIL_NAME := SUBS(GDG_FILE, 1, PER_POS-1)
|
||||
ORG_FILE := GDG_FILE
|
||||
ELSE
|
||||
FN_LEN := LEN(GDG_FILE)
|
||||
FIL_NAME := GDG_FILE
|
||||
ORG_FILE := GDG_FILE + '.DBF'
|
||||
ENDIF
|
||||
|
||||
IF !FILE( ORG_FILE )
|
||||
RETURN NIL
|
||||
ENDIF
|
||||
|
||||
IF RIGHT( ORG_FILE , 3 ) = 'DBF'
|
||||
FILEMAJOR := SUBS( ORG_FILE, 1, LEN( ORG_FILE )-3 )
|
||||
IF FILE( FILEMAJOR + 'DBT' )
|
||||
DBTFILE := FILEMAJOR + 'DBT'
|
||||
ELSEIF FILE( FILEMAJOR + 'FPT' )
|
||||
DBTFILE := FILEMAJOR + 'FPT'
|
||||
ELSE
|
||||
DBTFILE := ''
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
FOR I := GDG_LMT TO 1 STEP -1
|
||||
TO_EXT := ALLTRIM( STR(I-1, 3 ) )
|
||||
TO_EXT := PADL( TO_EXT, 3, '0' )
|
||||
TO_EXT2 := ALLTRIM( STR(I, 3 ) )
|
||||
TO_EXT2 := PADL( TO_EXT2, 3, '0' )
|
||||
TO_FILE := SUBS(FIL_NAME, 1, FN_LEN) + '.' + TO_EXT
|
||||
TO_FIL2 := SUBS(FIL_NAME, 1, FN_LEN) + '.' + TO_EXT2
|
||||
IF FILE(TO_FILE) // IE. IF EXIST FILE7, ERASE FILE8
|
||||
IF FILE(TO_FIL2)
|
||||
ERASE (TO_FIL2) // ONLY EXECUTES IF FILE8 EXISTS
|
||||
ENDIF
|
||||
RENAME (TO_FILE) TO (TO_FIL2) // RENAME FILE7 TO FILE8
|
||||
ENDIF
|
||||
IF !EMPTY( DBTFILE )
|
||||
TO_EXT := ALLTRIM( STR(I + 100 - 1, 3 ) )
|
||||
TO_EXT := PADL( TO_EXT, 3, '0' )
|
||||
TO_EXT2 := ALLTRIM( STR(I + 100 , 3 ) )
|
||||
TO_EXT2 := PADL( TO_EXT2, 3, '0' )
|
||||
TO_MEMO := SUBS(FIL_NAME, 1, FN_LEN) + '.' + TO_EXT
|
||||
TO_FIL2 := SUBS(FIL_NAME, 1, FN_LEN) + '.' + TO_EXT2
|
||||
IF FILE(TO_MEMO) // IE. IF EXIST FILE7, ERASE FILE8
|
||||
IF FILE(TO_FIL2)
|
||||
ERASE (TO_FIL2) // ONLY EXECUTES IF FILE8 EXISTS
|
||||
ENDIF
|
||||
RENAME (TO_MEMO) TO (TO_FIL2) // RENAME FILE7 TO FILE8
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
COPY FILE (ORG_FILE) TO (TO_FILE)
|
||||
IF !EMPTY( DBTFILE ) // DON 10/10/03
|
||||
COPY FILE (DBTFILE) TO (TO_MEMO)
|
||||
ENDIF
|
||||
|
||||
RETURN NIL
|
||||
|
||||
|
||||
*******************************************
|
||||
|
||||
**************************************************************
|
||||
FUNCTION EVAL_ATSIGNS( CMDLINE )
|
||||
LOCAL STRT := AT('@', CMDLINE)
|
||||
LOCAL M_END := RAT('@', CMDLINE)
|
||||
LOCAL WORKVAR := SUBS( CMDLINE, STRT+1, M_END-STRT-1 )
|
||||
LOCAL EFILE, NEWCMDLINE := CMDLINE, REPVAR
|
||||
|
||||
IF M_END > STRT
|
||||
NEWCMDLINE := SUBST(CMDLINE, 1, STRT-1)
|
||||
|
||||
REPVAR := &WORKVAR
|
||||
IF VALTYPE( REPVAR )$'C'
|
||||
NEWCMDLINE := NEWCMDLINE + REPVAR
|
||||
ELSE
|
||||
IF VALTYPE( REPVAR )$'B'
|
||||
NEWCMDLINE := NEWCMDLINE + EVAL( REPVAR )
|
||||
ELSE
|
||||
MSGSTOP( 'Outfile @-sign error: ' + CMDLINE )
|
||||
RETURN CMDLINE
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
NEWCMDLINE += '.'+TIME() //** P3N - 03/05/07 ADD TIME TO DATE IN FILE NAME
|
||||
NEWCMDLINE := STRTRAN(NEWCMDLINE,":", '') //** P3N - STRIP THE ":" FROM THE TIME
|
||||
|
||||
NEWCMDLINE := NEWCMDLINE + SUBS(CMDLINE, M_END+1)
|
||||
ENDIF
|
||||
|
||||
|
||||
RETURN NEWCMDLINE
|
||||
|
||||
|
||||
******************************************
|
||||
|
||||
**************************************************
|
||||
|
||||
**************************************************
|
||||
|
||||
Reference in New Issue
Block a user