- Mejora API-PJX: Nuevo método loadModule() que devuelve el objeto Project interno de FoxBin2Prg cuando se pasa un nombre de proyecto existente
- Mejora API-PJX: Nuevo método getFilesNotFound() para el objeto Project de FoxBin2Prg, que devuelve la cantidad de archivos del proyecto que no se encuentran y un array con los estados de existencia de cada archivo
This commit is contained in:
626
foxbin2prg.prg
626
foxbin2prg.prg
@@ -2610,7 +2610,8 @@ DEFINE CLASS c_foxbin2prg AS Session
|
||||
lnFileCount = ADIR( laFiles, lcFileSpec, '', 1 )
|
||||
|
||||
FOR I = 1 TO lnFileCount
|
||||
lcFile = FORCEPATH( laFiles(I,1), JUSTPATH( lcFileSpec ) )
|
||||
toModulo = NULL
|
||||
lcFile = FORCEPATH( laFiles(I,1), JUSTPATH( lcFileSpec ) )
|
||||
|
||||
DO CASE
|
||||
CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJX' AND LEFT(EVL(tcType,'0'),1) == '*'
|
||||
@@ -2715,7 +2716,8 @@ DEFINE CLASS c_foxbin2prg AS Session
|
||||
.get_FilesFromDirectory( tc_InputFile, @laFiles, @lnFileCount )
|
||||
|
||||
FOR I = 1 TO lnFileCount
|
||||
lcFile = laFiles(I)
|
||||
toModulo = NULL
|
||||
lcFile = laFiles(I)
|
||||
|
||||
IF NOT .hasSupport_Bin2Prg( JUSTEXT(lcFile) ) OR NOT ADIR(laDirInfo, lcFile) > 0 THEN
|
||||
LOOP
|
||||
@@ -2775,7 +2777,8 @@ DEFINE CLASS c_foxbin2prg AS Session
|
||||
.get_FilesFromDirectory( tc_InputFile, @laFiles, @lnFileCount )
|
||||
|
||||
FOR I = 1 TO lnFileCount
|
||||
lcFile = laFiles(I)
|
||||
toModulo = NULL
|
||||
lcFile = laFiles(I)
|
||||
|
||||
IF NOT .hasSupport_Prg2Bin( JUSTEXT(lcFile) ) OR NOT ADIR(laDirInfo, lcFile) > 0 THEN
|
||||
LOOP
|
||||
@@ -2893,7 +2896,7 @@ DEFINE CLASS c_foxbin2prg AS Session
|
||||
ERASE ( .c_LogFile )
|
||||
ENDIF
|
||||
|
||||
lnCodError = .convert( tc_InputFile, toModulo, toEx, .T., tcOriginalFileName )
|
||||
lnCodError = .convert( tc_InputFile, @toModulo, @toEx, .T., tcOriginalFileName )
|
||||
*.updateProgressbar( loLang.C_END_OF_PROCESS_LOC, 1, 1, 0 )
|
||||
ENDIF
|
||||
ENDIF
|
||||
@@ -3011,10 +3014,7 @@ DEFINE CLASS c_foxbin2prg AS Session
|
||||
|
||||
SET NOTIFY &lc_OldSetNotify.
|
||||
STORE NULL TO loFSO, loWSH
|
||||
RELEASE tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress ;
|
||||
, toModulo, toEx, tlRelanzarError, tcOriginalFileName, tcRecompile, tcNoTimestamps ;
|
||||
, tcBackupLevels, tcClearUniqueID, tcOptimizeByFilestamp ;
|
||||
, I, lcPath, lcFileSpec, lcFile, laFiles, lnFileCount, lcErrorInfo, lcErrorFile, loEx, loFSO
|
||||
RELEASE I, lcPath, lcFileSpec, lcFile, laFiles, lnFileCount, lcErrorInfo, lcErrorFile, loEx, loFSO
|
||||
ENDTRY
|
||||
|
||||
RETURN lnCodError
|
||||
@@ -3044,7 +3044,8 @@ DEFINE CLASS c_foxbin2prg AS Session
|
||||
LPARAMETERS tc_InputFile, tcRecompile, toModulo, toEx, tcOriginalFileName, tcLogFile, tcType
|
||||
|
||||
LOCAL lcFileSpec, lnFileCount, laFiles(1,1), lcFile, lnCodError, I, lnFileCount, llError, laDirInfo(1,5) ;
|
||||
, loLang AS CL_LANG OF 'FOXBIN2PRG.PRG'
|
||||
, loLang AS CL_LANG OF 'FOXBIN2PRG.PRG' ;
|
||||
, loEx as Exception
|
||||
|
||||
TRY
|
||||
WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
|
||||
@@ -3124,6 +3125,13 @@ DEFINE CLASS c_foxbin2prg AS Session
|
||||
ENDIF
|
||||
ENDFOR
|
||||
ENDWITH
|
||||
|
||||
CATCH TO loEx
|
||||
THROW
|
||||
|
||||
FINALLY
|
||||
STORE NULL TO loLang
|
||||
RELEASE loLang
|
||||
ENDTRY
|
||||
ENDPROC
|
||||
|
||||
@@ -3151,7 +3159,8 @@ DEFINE CLASS c_foxbin2prg AS Session
|
||||
LPARAMETERS tc_InputFile, tcRecompile, toModulo, toEx, tcOriginalFileName, tcLogFile, tcType
|
||||
|
||||
LOCAL lcFileSpec, lnFileCount, laFiles(1,1), lcFile, lnCodError, I, lnFileCount, llError, laDirInfo(1,5) ;
|
||||
, loLang AS CL_LANG OF 'FOXBIN2PRG.PRG'
|
||||
, loLang AS CL_LANG OF 'FOXBIN2PRG.PRG' ;
|
||||
, loEx as Exception
|
||||
|
||||
TRY
|
||||
WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
|
||||
@@ -3232,6 +3241,13 @@ DEFINE CLASS c_foxbin2prg AS Session
|
||||
ENDIF
|
||||
ENDFOR
|
||||
ENDWITH
|
||||
|
||||
CATCH TO loEx
|
||||
THROW
|
||||
|
||||
FINALLY
|
||||
STORE NULL TO loLang
|
||||
RELEASE loLang
|
||||
ENDTRY
|
||||
ENDPROC
|
||||
|
||||
@@ -3653,8 +3669,7 @@ DEFINE CLASS c_foxbin2prg AS Session
|
||||
*THIS.updateProcessedFile( lnIDInputFile )
|
||||
ENDIF
|
||||
|
||||
RELEASE tc_InputFile, toModulo, toEx, tlRelanzarError, tcOriginalFileName ;
|
||||
, lcErrorInfo, laDirFile, lcExtension, lnFileCount, laFiles, I ;
|
||||
RELEASE lcErrorInfo, laDirFile, lcExtension, lnFileCount, laFiles, I ;
|
||||
, ltFilestamp, lcExtA, lcExtB ;
|
||||
, loConversor, loFSO
|
||||
ENDTRY
|
||||
@@ -3905,6 +3920,209 @@ DEFINE CLASS c_foxbin2prg AS Session
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROCEDURE loadModule
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
* CARGA EL M<>DULO INDICADO EN tc_InputFile Y DEVUELVE SU REFERENCIA DE OBJETO EN toModulo
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
|
||||
* tc_InputFile (v! IN ) Nombre del archivo de entrada
|
||||
* toModulo (@? OUT) Referencia de objeto del m<>dulo generado (para Unit Testing)
|
||||
* toEx (@? OUT) Objeto con informaci<63>n del error
|
||||
* tlRelanzarError (v? IN ) Indica si el error debe relanzarse o no
|
||||
* tcOriginalFileName (v? IN ) Sirve para los casos en los que inputFile es un nombre temporal y se quiere generar
|
||||
* el nombre correcto dentro de la versi<73>n texto (por ej: en los PJ2 y las cabeceras)
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS tc_InputFile, toModulo, toEx AS EXCEPTION, tlRelanzarError, tcOriginalFileName
|
||||
|
||||
TRY
|
||||
LOCAL lnCodError, lcErrorInfo, laDirFile(1,5), lcExtension, lnFileCount, laFiles(1,1), I ;
|
||||
, ltFilestamp, lcExtA, lcExtB, laEvents(1,1), lnIDInputFile ;
|
||||
, loLang as CL_LANG OF 'FOXBIN2PRG.PRG' ;
|
||||
, loConversor as c_conversor_base OF 'FOXBIN2PRG.PRG' ;
|
||||
, loFSO AS Scripting.FileSystemObject
|
||||
lnCodError = 0
|
||||
|
||||
WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
|
||||
STORE NULL TO toModulo
|
||||
lc_OldSetNotify = SET("Notify")
|
||||
SET NOTIFY OFF
|
||||
loFSO = .o_FSO
|
||||
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
||||
.c_InputFile = FULLPATH( tc_InputFile )
|
||||
.l_Error = .F.
|
||||
lcExtension = UPPER( JUSTEXT(.c_InputFile) )
|
||||
|
||||
.writeLog( REPLICATE( '*', 100 ) )
|
||||
.writeLog( 'LOAD MODULE', 2 )
|
||||
.writeLog( REPLICATE( '*', 100 ) )
|
||||
|
||||
IF ADIR( laDirFile, .c_InputFile, '', 1 ) = 0
|
||||
*ERROR 'No se encontr<74> el archivo [' + .c_InputFile + ']'
|
||||
ERROR loLang.C_FILE_NOT_FOUND_LOC + ' [' + .c_InputFile + ']'
|
||||
ENDIF
|
||||
|
||||
.c_InputFile = loFSO.GetAbsolutePathName( FORCEPATH( laDirFile(1,1), JUSTPATH(.c_InputFile) ) )
|
||||
|
||||
*-- VERIFICO SI HAY ARCHIVO DE CONFIGURACI<43>N SECUNDARIO
|
||||
.evaluateConfiguration()
|
||||
|
||||
|
||||
IF NOT EMPTY(tcOriginalFileName)
|
||||
tcOriginalFileName = loFSO.GetAbsolutePathName( tcOriginalFileName )
|
||||
ENDIF
|
||||
|
||||
.c_OriginalFileName = EVL( tcOriginalFileName, .c_InputFile )
|
||||
|
||||
IF UPPER( JUSTEXT(.c_OriginalFileName) ) = 'PJM'
|
||||
.c_OriginalFileName = FORCEEXT(.c_OriginalFileName,'pjx')
|
||||
ENDIF
|
||||
|
||||
lnIDInputFile = .n_ProcessedFiles
|
||||
|
||||
.writeLog( C_TAB + 'c_OriginalFileName: ' + .c_OriginalFileName )
|
||||
.writeLog( )
|
||||
|
||||
IF NOT ADIR(laDirFile, .c_InputFile) > 0 THEN
|
||||
ERROR loLang.C_FILE_DOESNT_EXIST_LOC + ' [' + .c_InputFile + ']'
|
||||
ENDIF
|
||||
|
||||
DO CASE
|
||||
CASE lcExtension = 'VCX'
|
||||
loConversor = CREATEOBJECT( 'c_conversor_vcx_a_prg' )
|
||||
|
||||
CASE lcExtension = 'SCX'
|
||||
loConversor = CREATEOBJECT( 'c_conversor_scx_a_prg' )
|
||||
|
||||
CASE lcExtension = 'PJX'
|
||||
loConversor = CREATEOBJECT( 'c_conversor_pjx_a_prg' )
|
||||
|
||||
CASE lcExtension = 'PJM'
|
||||
loConversor = CREATEOBJECT( 'c_conversor_pjm_a_prg' )
|
||||
|
||||
CASE lcExtension = 'FRX'
|
||||
loConversor = CREATEOBJECT( 'c_conversor_frx_a_prg' )
|
||||
|
||||
CASE lcExtension = 'LBX'
|
||||
loConversor = CREATEOBJECT( 'c_conversor_frx_a_prg' )
|
||||
|
||||
CASE lcExtension = 'DBF'
|
||||
loConversor = CREATEOBJECT( 'c_conversor_dbf_a_prg' )
|
||||
|
||||
CASE lcExtension = 'DBC'
|
||||
loConversor = CREATEOBJECT( 'c_conversor_dbc_a_prg' )
|
||||
|
||||
CASE lcExtension = 'MNX'
|
||||
loConversor = CREATEOBJECT( 'c_conversor_mnx_a_prg' )
|
||||
|
||||
CASE lcExtension = .c_VC2
|
||||
loConversor = CREATEOBJECT( 'c_conversor_prg_a_vcx' )
|
||||
|
||||
CASE lcExtension = .c_SC2
|
||||
loConversor = CREATEOBJECT( 'c_conversor_prg_a_scx' )
|
||||
|
||||
CASE lcExtension = .c_PJ2
|
||||
loConversor = CREATEOBJECT( 'c_conversor_prg_a_pjx' )
|
||||
|
||||
CASE lcExtension = .c_FR2
|
||||
loConversor = CREATEOBJECT( 'c_conversor_prg_a_frx' )
|
||||
|
||||
CASE lcExtension = .c_LB2
|
||||
loConversor = CREATEOBJECT( 'c_conversor_prg_a_frx' )
|
||||
|
||||
CASE lcExtension = .c_DB2
|
||||
loConversor = CREATEOBJECT( 'c_conversor_prg_a_dbf' )
|
||||
|
||||
CASE lcExtension = .c_DC2
|
||||
loConversor = CREATEOBJECT( 'c_conversor_prg_a_dbc' )
|
||||
|
||||
CASE lcExtension = .c_MN2
|
||||
loConversor = CREATEOBJECT( 'c_conversor_prg_a_mnx' )
|
||||
|
||||
OTHERWISE
|
||||
*ERROR 'El archivo [' + .c_InputFile + '] no est<73> soportado'
|
||||
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
|
||||
|
||||
ENDCASE
|
||||
|
||||
.c_Type = UPPER(JUSTEXT(.c_OutputFile))
|
||||
loConversor.c_InputFile = .c_InputFile
|
||||
loConversor.c_OutputFile = .c_OutputFile
|
||||
loConversor.c_LogFile = .c_LogFile
|
||||
loConversor.n_Debug = .n_Debug
|
||||
loConversor.l_Test = .l_Test
|
||||
loConversor.n_FB2PRG_Version = .n_FB2PRG_Version
|
||||
loConversor.l_MethodSort_Enabled = .l_MethodSort_Enabled
|
||||
loConversor.l_PropSort_Enabled = .l_PropSort_Enabled
|
||||
loConversor.l_ReportSort_Enabled = .l_ReportSort_Enabled
|
||||
loConversor.c_OriginalFileName = .c_OriginalFileName
|
||||
loConversor.c_Foxbin2prg_FullPath = .c_Foxbin2prg_FullPath
|
||||
*--
|
||||
*.updateProgressbar( loLang.C_PROCESSING_LOC + ' ' + .c_InputFile + '...', 0, 0, 0 )
|
||||
|
||||
*IF AEVENTS( laEvents, loConversor ) = 0 THEN
|
||||
* BINDEVENT( loConversor, 'updateProgressbar', THIS, 'updateProgressbar' )
|
||||
*ENDIF
|
||||
|
||||
loConversor.loadModule( @toModulo, .F., THIS )
|
||||
|
||||
IF loConversor.l_Error THEN
|
||||
.l_Error = .T.
|
||||
ENDIF
|
||||
|
||||
*.n_ProcessedFilesCount = .n_ProcessedFilesCount + 1
|
||||
.writeLog()
|
||||
.writeLog(loConversor.c_TextLog) && Recojo el LOG que haya generado el conversor
|
||||
|
||||
*-- Logueo los errores
|
||||
IF NOT EMPTY(loConversor.c_TextErr) THEN
|
||||
.writeErrorLog( REPLICATE( '-', 100 ), 1 )
|
||||
.writeErrorLog( loLang.C_ERRORS_FOUND_IN_FILE_LOC + ' [' + .c_InputFile + '] ' )
|
||||
.writeErrorLog( loConversor.c_TextErr )
|
||||
.writeErrorLog( )
|
||||
ENDIF
|
||||
|
||||
ENDWITH && THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
|
||||
|
||||
CATCH TO toEx
|
||||
lnCodError = toEx.ERRORNO
|
||||
*lcErrorInfo = THIS.exception2Str(toEx) + CR_LF + CR_LF + loLang.C_SOURCEFILE_LOC + THIS.c_InputFile
|
||||
|
||||
*-- updateProcessedFile( tcProcessed, tcHasErrors, tcSupported, tcReserved )
|
||||
*THIS.updateProcessedFile( lnIDInputFile, '', '', 'E1' )
|
||||
|
||||
IF THIS.n_Debug > 0 THEN
|
||||
IF _VFP.STARTMODE = 0
|
||||
SET STEP ON
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF tlRelanzarError && Usado en Unit Testing
|
||||
THROW
|
||||
ENDIF
|
||||
|
||||
FINALLY
|
||||
SET NOTIFY &lc_OldSetNotify.
|
||||
|
||||
*IF AEVENTS( laEvents, loConversor ) > 0 THEN
|
||||
* UNBINDEVENTS( loConversor )
|
||||
*ENDIF
|
||||
|
||||
STORE NULL TO loConversor, loFSO
|
||||
|
||||
*IF lnCodError = 0 AND THIS.l_Error THEN
|
||||
* THIS.updateProcessedFile( lnIDInputFile, '', '', 'E1' )
|
||||
*ELSE
|
||||
* *THIS.updateProcessedFile( lnIDInputFile )
|
||||
*ENDIF
|
||||
|
||||
RELEASE lcErrorInfo, laDirFile, lcExtension, lnFileCount, laFiles, I ;
|
||||
, ltFilestamp, lcExtA, lcExtB ;
|
||||
, loConversor, loFSO
|
||||
ENDTRY
|
||||
|
||||
RETURN lnCodError
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROCEDURE readInputVFPParams
|
||||
LPARAMETERS taParams, tnPCount
|
||||
EXTERNAL ARRAY taParams
|
||||
@@ -4941,6 +5159,7 @@ DEFINE CLASS c_conversor_base AS Custom
|
||||
+ [<memberdata name="get_valuefromnullterminatedvalue" display="get_ValueFromNullTerminatedValue"/>] ;
|
||||
+ [<memberdata name="identifyexclusionblocks" display="identifyExclusionBlocks"/>] ;
|
||||
+ [<memberdata name="lineisonlycommentandnometadata" display="lineIsOnlyCommentAndNoMetadata"/>] ;
|
||||
+ [<memberdata name="loadmodule" display="loadModule"/>] ;
|
||||
+ [<memberdata name="normalizeassignment" display="normalizeAssignment"/>] ;
|
||||
+ [<memberdata name="normalizepropertyvalue" display="normalizePropertyValue"/>] ;
|
||||
+ [<memberdata name="normalizexmlvalue" display="normalizeXMLValue"/>] ;
|
||||
@@ -5924,6 +6143,26 @@ DEFINE CLASS c_conversor_base AS Custom
|
||||
|
||||
|
||||
|
||||
PROCEDURE loadModule
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
|
||||
* toModulo (!@ OUT) Objeto generado de clase correspondiente con la informaci<63>n leida del texto
|
||||
* toEx (!@ OUT) Objeto con informaci<63>n del error
|
||||
* toFoxBin2Prg (!@ IN ) Referencia al objeto principal
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg
|
||||
#IF .F.
|
||||
LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
|
||||
#ENDIF
|
||||
*LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
|
||||
*loLang = _SCREEN.o_FoxBin2Prg_Lang
|
||||
*THIS.writeLog( C_TAB + loLang.C_CONVERTING_FILE_LOC + ' ' + THIS.c_OutputFile + '...' )
|
||||
*RELEASE loLang
|
||||
RETURN
|
||||
ENDPROC
|
||||
|
||||
|
||||
|
||||
PROCEDURE normalizeAssignment
|
||||
LPARAMETERS tcAsignacion, tcComentario
|
||||
LOCAL lcPropName, lcValor, lnCodError, lcExpNormalizada, lnPos
|
||||
@@ -14711,6 +14950,10 @@ ENDDEFINE
|
||||
|
||||
|
||||
DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
||||
_MEMBERDATA = [<VFPData>] ;
|
||||
+ [<memberdata name="loadfile" display="loadFile"/>] ;
|
||||
+ [</VFPData>]
|
||||
|
||||
#IF .F.
|
||||
LOCAL THIS AS c_conversor_pjx_a_prg OF 'FOXBIN2PRG.PRG'
|
||||
#ENDIF
|
||||
@@ -14720,108 +14963,38 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
||||
PROCEDURE convert
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
|
||||
* toModulo (!@ OUT) Objeto generado de clase CL_PROJECT con la informaci<63>n leida del texto
|
||||
* toEx (!@ OUT) Objeto con informaci<63>n del error
|
||||
* toFoxBin2Prg (v! IN ) Referencia al objeto principal
|
||||
* toModulo (@! OUT) Objeto generado de clase CL_PROJECT con la informaci<63>n leida del texto
|
||||
* toEx (@! OUT) Objeto con informaci<63>n del error
|
||||
* toFoxBin2Prg (@! IN ) Referencia al objeto principal
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg
|
||||
#IF .F.
|
||||
LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
|
||||
LOCAL toModulo AS cl_project OF 'FOXBIN2PRG.PRG'
|
||||
#ENDIF
|
||||
DODEFAULT( @toModulo, @toEx, @toFoxBin2Prg )
|
||||
|
||||
TRY
|
||||
LOCAL lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lcDevInfo, lnLen ;
|
||||
LOCAL lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lnLen ;
|
||||
, loEx AS EXCEPTION ;
|
||||
, loProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG' ;
|
||||
, loServerHead AS CL_PROJ_SRV_HEAD OF 'FOXBIN2PRG.PRG' ;
|
||||
, loServerData AS CL_PROJ_SRV_DATA OF 'FOXBIN2PRG.PRG'
|
||||
LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
|
||||
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
||||
STORE NULL TO loProject, loReg, loServerHead, loServerData
|
||||
STORE NULL TO loProject, loReg, loServerHead
|
||||
|
||||
WITH THIS AS c_conversor_pjx_a_prg OF 'FOXBIN2PRG.PRG'
|
||||
IF toFoxBin2Prg.l_ProcessFiles THEN
|
||||
USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG
|
||||
SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN
|
||||
USE IN (SELECT("_TABLAORIG"))
|
||||
|
||||
loServerHead = CREATEOBJECT('CL_PROJ_SRV_HEAD')
|
||||
.updateProgressbar( 'Processing Project ' + '...', 1, 2, 1 )
|
||||
|
||||
|
||||
*-- Obtengo los archivos del proyecto
|
||||
loProject = CREATEOBJECT('CL_PROJECT')
|
||||
SCATTER MEMO NAME loReg
|
||||
|
||||
IF toFoxBin2Prg.l_NoTimestamps
|
||||
loReg.TIMESTAMP = 0
|
||||
ENDIF
|
||||
IF toFoxBin2Prg.l_ClearUniqueID
|
||||
loReg.ID = 0
|
||||
IF VARTYPE(toModulo) = "O" AND toModulo.Class == 'Cl_project' THEN
|
||||
*-- Ya esta cargado el objeto del Proyecto y se pas<61> por referencia
|
||||
ELSE
|
||||
.loadModule( @toModulo, @toEx, @toFoxBin2Prg )
|
||||
ENDIF
|
||||
|
||||
loProject._HomeDir = ['] + ALLTRIM( .get_ValueFromNullTerminatedValue( loReg.HOMEDIR ) ) + [']
|
||||
|
||||
loProject._ServerInfo = loReg.RESERVED2
|
||||
loProject._Debug = loReg.DEBUG
|
||||
loProject._Encrypted = loReg.ENCRYPT
|
||||
lcDevInfo = loReg.DEVINFO
|
||||
|
||||
|
||||
*--- Ubico el programa principal
|
||||
LOCATE FOR MAINPROG
|
||||
|
||||
IF FOUND()
|
||||
loProject._MainProg = LOWER( ALLTRIM( .get_ValueFromNullTerminatedValue( NAME ) ) )
|
||||
ENDIF
|
||||
|
||||
|
||||
*-- Ubico el Project Hook
|
||||
LOCATE FOR TYPE == 'W'
|
||||
|
||||
IF FOUND()
|
||||
loProject._ProjectHookLibrary = LOWER( ALLTRIM( .get_ValueFromNullTerminatedValue( NAME ) ) )
|
||||
loProject._ProjectHookClass = LOWER( ALLTRIM( .get_ValueFromNullTerminatedValue( RESERVED1 ) ) )
|
||||
ENDIF
|
||||
|
||||
|
||||
*-- Ubico el icono del proyecto
|
||||
LOCATE FOR TYPE == 'i'
|
||||
|
||||
IF FOUND()
|
||||
loProject._Icon = LOWER( ALLTRIM( .get_ValueFromNullTerminatedValue( NAME ) ) )
|
||||
ENDIF
|
||||
|
||||
|
||||
*-- Escaneo el proyecto
|
||||
SCAN ALL FOR NOT INLIST(TYPE, 'H','W','i' )
|
||||
loReg = NULL
|
||||
SCATTER FIELDS NAME,TYPE,EXCLUDE,COMMENTS,CPID,TIMESTAMP,ID,OBJREV MEMO NAME loReg
|
||||
|
||||
IF toFoxBin2Prg.l_NoTimestamps
|
||||
loReg.TIMESTAMP = 0
|
||||
ENDIF
|
||||
IF toFoxBin2Prg.l_ClearUniqueID
|
||||
loReg.ID = 0
|
||||
ENDIF
|
||||
|
||||
loReg.NAME = LOWER( ALLTRIM( .get_ValueFromNullTerminatedValue( loReg.NAME ) ) )
|
||||
loReg.COMMENTS = ALLTRIM( .get_ValueFromNullTerminatedValue( loReg.COMMENTS ) )
|
||||
|
||||
*-- TIP: Si el "Name" del objeto est<73> vac<61>o, lo salteo
|
||||
IF EMPTY(loReg.NAME)
|
||||
LOOP
|
||||
ENDIF
|
||||
|
||||
TRY
|
||||
loProject.ADD( loReg, loReg.NAME )
|
||||
CATCH TO loEx WHEN loEx.ERRORNO = 2062 && The specified key already exists ==> loProject.ADD( loReg, loReg.NAME )
|
||||
*-- Saltear y no agregar el archivo duplicado / Bypass and not add the duplicated file
|
||||
ENDTRY
|
||||
ENDSCAN
|
||||
|
||||
|
||||
.updateProgressbar( 'Processing Project info...', 2, 3, 1 )
|
||||
loProject = toModulo
|
||||
loServerHead = loProject._ServerHead
|
||||
|
||||
C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER()
|
||||
|
||||
|
||||
@@ -14836,15 +15009,12 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
||||
|
||||
|
||||
*-- Informaci<63>n del programa
|
||||
loProject.parseDeviceInfo( lcDevInfo )
|
||||
C_FB2PRG_CODE = C_FB2PRG_CODE + loProject.getFormattedDeviceInfoText() + CR_LF
|
||||
|
||||
|
||||
*-- Informaci<63>n de los Servidores definidos
|
||||
IF NOT EMPTY(loProject._ServerInfo)
|
||||
loServerHead.parseServerInfo( loProject._ServerInfo )
|
||||
C_FB2PRG_CODE = C_FB2PRG_CODE + loServerHead.getFormattedServerText() + CR_LF
|
||||
loServerHead = NULL
|
||||
ENDIF
|
||||
|
||||
|
||||
@@ -14913,9 +15083,6 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
||||
|
||||
FOR EACH loReg IN loProject &&FOXOBJECT
|
||||
IF NOT EMPTY(loReg.COMMENTS)
|
||||
*TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||
* <<>> .ITEM(lcCurdir + '<<loReg.NAME>>').Description = '<<loReg.COMMENTS>>'
|
||||
*ENDTEXT
|
||||
C_FB2PRG_CODE = C_FB2PRG_CODE + CHR(13) + CHR(10) + CHR(9) + ".ITEM(lcCurdir + '" + loReg.NAME + "').Description = '" + loReg.COMMENTS + "'"
|
||||
ENDIF
|
||||
loReg = NULL
|
||||
@@ -14992,7 +15159,6 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
||||
|
||||
|
||||
*-- Build y cierre
|
||||
* _VFP.Projects('<<JUSTFNAME( .c_inputFile )>>').FILES('__newproject.f2b').Remove()
|
||||
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||
<<>>
|
||||
_VFP.Projects('<<JUSTFNAME( EVL( .c_OriginalFileName, .c_InputFile ) )>>').Close()
|
||||
@@ -15023,7 +15189,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
||||
|
||||
|
||||
*-- Genero el PJ2
|
||||
.updateProgressbar( 'Writing ' + toFoxBin2Prg.c_PJ2 + '...', 2, 2, 1 )
|
||||
.updateProgressbar( 'Writing ' + toFoxBin2Prg.c_PJ2 + '...', 3, 3, 1 )
|
||||
|
||||
IF .l_Test
|
||||
toModulo = C_FB2PRG_CODE
|
||||
@@ -15033,6 +15199,149 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
||||
ENDWITH && THIS
|
||||
|
||||
|
||||
CATCH TO toEx
|
||||
THIS.set_UserValue(@toEx)
|
||||
|
||||
lnCodError = toEx.ERRORNO
|
||||
|
||||
DO CASE
|
||||
CASE lnCodError = 2062 && The specified key already exists ==> loProject.ADD( loReg, loReg.NAME )
|
||||
toEx.USERVALUE = toEx.USERVALUE + loLang.C_DUPLICATED_FILE_LOC + ': ' + loReg.NAME
|
||||
ENDCASE
|
||||
|
||||
IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0
|
||||
SET STEP ON
|
||||
ENDIF
|
||||
|
||||
THROW
|
||||
|
||||
FINALLY
|
||||
USE IN (SELECT("TABLABIN"))
|
||||
STORE NULL TO loProject, loReg, loServerHead
|
||||
RELEASE toModulo, toEx, toFoxBin2Prg ;
|
||||
, lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lnLen ;
|
||||
, loProject, loServerHead
|
||||
|
||||
ENDTRY
|
||||
|
||||
RETURN
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROCEDURE loadModule
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
|
||||
* toModulo (@! OUT) Objeto generado de clase CL_PROJECT con la informaci<63>n leida del texto
|
||||
* toEx (@! OUT) Objeto con informaci<63>n del error
|
||||
* toFoxBin2Prg (v! IN ) Referencia al objeto principal
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg
|
||||
#IF .F.
|
||||
LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
|
||||
LOCAL toModulo AS CL_PROJECT OF 'FOXBIN2PRG.PRG'
|
||||
#ENDIF
|
||||
DODEFAULT( @toModulo, @toEx, @toFoxBin2Prg )
|
||||
|
||||
TRY
|
||||
LOCAL lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lnLen ;
|
||||
, loEx AS EXCEPTION ;
|
||||
, loProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG' ;
|
||||
, loServerHead AS CL_PROJ_SRV_HEAD OF 'FOXBIN2PRG.PRG' ;
|
||||
, loServerData AS CL_PROJ_SRV_DATA OF 'FOXBIN2PRG.PRG'
|
||||
LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
|
||||
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
||||
STORE NULL TO loProject, loReg, loServerHead, loServerData
|
||||
|
||||
WITH THIS AS c_conversor_pjx_a_prg OF 'FOXBIN2PRG.PRG'
|
||||
USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG
|
||||
SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN
|
||||
USE IN (SELECT("_TABLAORIG"))
|
||||
|
||||
.updateProgressbar( 'Loading Project info...', 1, 3, 1 )
|
||||
|
||||
|
||||
*-- Obtengo los archivos del proyecto
|
||||
loProject = CREATEOBJECT('CL_PROJECT')
|
||||
toModulo = loProject
|
||||
loServerHead = loProject._ServerHead
|
||||
|
||||
loProject.c_InputFile = .c_InputFile
|
||||
SCATTER MEMO NAME loReg
|
||||
|
||||
IF toFoxBin2Prg.l_NoTimestamps
|
||||
loReg.TIMESTAMP = 0
|
||||
ENDIF
|
||||
IF toFoxBin2Prg.l_ClearUniqueID
|
||||
loReg.ID = 0
|
||||
ENDIF
|
||||
|
||||
loProject._HomeDir = ['] + ALLTRIM( .get_ValueFromNullTerminatedValue( loReg.HOMEDIR ) ) + [']
|
||||
loProject._ServerInfo = loReg.RESERVED2
|
||||
loProject._Debug = loReg.DEBUG
|
||||
loProject._Encrypted = loReg.ENCRYPT
|
||||
loProject.parseDeviceInfo( loReg.DEVINFO )
|
||||
|
||||
*-- Informaci<63>n de los Servidores definidos
|
||||
IF NOT EMPTY(loProject._ServerInfo)
|
||||
loServerHead.parseServerInfo( loProject._ServerInfo )
|
||||
loServerHead = NULL
|
||||
ENDIF
|
||||
|
||||
|
||||
*--- Ubico el programa principal
|
||||
LOCATE FOR MAINPROG
|
||||
|
||||
IF FOUND()
|
||||
loProject._MainProg = LOWER( ALLTRIM( .get_ValueFromNullTerminatedValue( NAME ) ) )
|
||||
ENDIF
|
||||
|
||||
|
||||
*-- Ubico el Project Hook
|
||||
LOCATE FOR TYPE == 'W'
|
||||
|
||||
IF FOUND()
|
||||
loProject._ProjectHookLibrary = LOWER( ALLTRIM( .get_ValueFromNullTerminatedValue( NAME ) ) )
|
||||
loProject._ProjectHookClass = LOWER( ALLTRIM( .get_ValueFromNullTerminatedValue( RESERVED1 ) ) )
|
||||
ENDIF
|
||||
|
||||
|
||||
*-- Ubico el icono del proyecto
|
||||
LOCATE FOR TYPE == 'i'
|
||||
|
||||
IF FOUND()
|
||||
loProject._Icon = LOWER( ALLTRIM( .get_ValueFromNullTerminatedValue( NAME ) ) )
|
||||
ENDIF
|
||||
|
||||
|
||||
*-- Escaneo el proyecto
|
||||
SCAN ALL FOR NOT INLIST(TYPE, 'H','W','i' )
|
||||
loReg = NULL
|
||||
SCATTER FIELDS NAME,TYPE,EXCLUDE,COMMENTS,CPID,TIMESTAMP,ID,OBJREV MEMO NAME loReg
|
||||
|
||||
IF toFoxBin2Prg.l_NoTimestamps
|
||||
loReg.TIMESTAMP = 0
|
||||
ENDIF
|
||||
IF toFoxBin2Prg.l_ClearUniqueID
|
||||
loReg.ID = 0
|
||||
ENDIF
|
||||
|
||||
loReg.NAME = LOWER( ALLTRIM( .get_ValueFromNullTerminatedValue( loReg.NAME ) ) )
|
||||
loReg.COMMENTS = ALLTRIM( .get_ValueFromNullTerminatedValue( loReg.COMMENTS ) )
|
||||
|
||||
*-- TIP: Si el "Name" del objeto est<73> vac<61>o, lo salteo
|
||||
IF EMPTY(loReg.NAME)
|
||||
LOOP
|
||||
ENDIF
|
||||
|
||||
TRY
|
||||
loProject.ADD( loReg, loReg.NAME )
|
||||
CATCH TO loEx WHEN loEx.ERRORNO = 2062 && The specified key already exists ==> loProject.ADD( loReg, loReg.NAME )
|
||||
*-- Saltear y no agregar el archivo duplicado / Bypass and not add the duplicated file
|
||||
ENDTRY
|
||||
ENDSCAN
|
||||
ENDWITH && THIS
|
||||
|
||||
|
||||
CATCH TO toEx
|
||||
THIS.set_UserValue(@toEx)
|
||||
|
||||
@@ -15054,7 +15363,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
||||
USE IN (SELECT("TABLABIN"))
|
||||
STORE NULL TO loProject, loReg, loServerHead, loServerData
|
||||
RELEASE toModulo, toEx, toFoxBin2Prg ;
|
||||
, lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lcDevInfo, lnLen ;
|
||||
, lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lnLen ;
|
||||
, loProject, loServerHead, loServerData
|
||||
|
||||
ENDTRY
|
||||
@@ -15090,7 +15399,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg
|
||||
|
||||
TRY
|
||||
IF toFoxBin2Prg.l_ProcessFiles THEN
|
||||
LOCAL lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lcDevInfo, lnLen ;
|
||||
LOCAL lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lnLen ;
|
||||
, lcStrPJM, laLines(1), laProps(1) ;
|
||||
, loEx AS EXCEPTION ;
|
||||
, loProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG' ;
|
||||
@@ -15101,12 +15410,12 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg
|
||||
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
||||
STORE NULL TO loProject, loReg, loServerHead, loServerData
|
||||
lcStrPJM = FILETOSTR( THIS.c_InputFile )
|
||||
loServerHead = CREATEOBJECT('CL_PROJ_SRV_HEAD')
|
||||
THIS.updateProgressbar( 'Scanning PJM...', 1, 2, 1 )
|
||||
|
||||
|
||||
*-- Obtengo los archivos del proyecto
|
||||
loProject = CREATEOBJECT('CL_PROJECT')
|
||||
loServerHead = loProject._ServerHead
|
||||
|
||||
WITH loProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG'
|
||||
*-- Proj.Info
|
||||
@@ -15161,7 +15470,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg
|
||||
ENDWITH
|
||||
|
||||
ELSE
|
||||
loServerData = CREATEOBJECT("CL_PROJ_SRV_DATA")
|
||||
loServerData = loServerHead.getServerDataObject()
|
||||
|
||||
WITH loServerData AS CL_PROJ_SRV_DATA OF 'FOXBIN2PRG.PRG'
|
||||
._HelpContextID = laProps(4)
|
||||
@@ -15449,7 +15758,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg
|
||||
*USE IN (SELECT("TABLABIN"))
|
||||
STORE NULL TO loProject, loReg, loServerHead, loServerData
|
||||
RELEASE toModulo, toEx, toFoxBin2Prg ;
|
||||
, lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lcDevInfo, lnLen ;
|
||||
, lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lnLen ;
|
||||
, lcStrPJM, laLines, laProps, loProject, loServerHead, loServerData
|
||||
|
||||
ENDTRY
|
||||
@@ -16139,6 +16448,7 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM
|
||||
+ [<memberdata name="set_line" display="set_Line"/>] ;
|
||||
+ [<memberdata name="analyzecodeblock" display="analyzeCodeBlock"/>] ;
|
||||
+ [<memberdata name="filetypedescription" display="fileTypeDescription"/>] ;
|
||||
+ [<memberdata name="get_absolutepath" display="get_AbsolutePath"/>] ;
|
||||
+ [<memberdata name="get_separatedlineandcomment" display="get_SeparatedLineAndComment"/>] ;
|
||||
+ [<memberdata name="totext" display="toText"/>] ;
|
||||
+ [<memberdata name="writeerrorlog" display="writeErrorLog"/>] ;
|
||||
@@ -16176,6 +16486,29 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROCEDURE get_AbsolutePath
|
||||
LPARAMETERS tc_InputFile, tc_FullPath
|
||||
|
||||
*-- Ajusto la ruta si no es absoluta
|
||||
tc_InputFile = EVL(tc_InputFile,'')
|
||||
|
||||
IF NOT EMPTY( JUSTEXT(tc_FullPath) ) THEN
|
||||
*-- Se indic<69> PATH+archivo.ext
|
||||
tc_FullPath = JUSTPATH(tc_FullPath)
|
||||
ENDIF
|
||||
|
||||
tc_FullPath = ADDBS( tc_FullPath )
|
||||
|
||||
IF LEN(tc_InputFile) > 1 ;
|
||||
AND LEFT(LTRIM(tc_InputFile),2) <> '\\' ;
|
||||
AND SUBSTR(LTRIM(tc_InputFile),2,1) <> ':' THEN
|
||||
tc_InputFile = FULLPATH(tc_InputFile, tc_FullPath)
|
||||
ENDIF
|
||||
|
||||
RETURN tc_InputFile
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROCEDURE get_SeparatedLineAndComment
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
|
||||
@@ -16227,6 +16560,7 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION
|
||||
+ [<memberdata name="_saved" display="_Saved"/>] ;
|
||||
+ [<memberdata name="analyzecodeblock" display="analyzeCodeBlock"/>] ;
|
||||
+ [<memberdata name="get_separatedlineandcomment" display="get_SeparatedLineAndComment"/>] ;
|
||||
+ [<memberdata name="get_absolutepath" display="get_AbsolutePath"/>] ;
|
||||
+ [<memberdata name="set_line" display="set_Line"/>] ;
|
||||
+ [<memberdata name="totext" display="toText"/>] ;
|
||||
+ [</VFPData>]
|
||||
@@ -16263,6 +16597,29 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROCEDURE get_AbsolutePath
|
||||
LPARAMETERS tc_InputFile, tc_FullPath
|
||||
|
||||
*-- Ajusto la ruta si no es absoluta
|
||||
tc_InputFile = EVL(tc_InputFile,'')
|
||||
|
||||
IF NOT EMPTY( JUSTEXT(tc_FullPath) ) THEN
|
||||
*-- Se indic<69> PATH+archivo.ext
|
||||
tc_FullPath = JUSTPATH(tc_FullPath)
|
||||
ENDIF
|
||||
|
||||
tc_FullPath = ADDBS( tc_FullPath )
|
||||
|
||||
IF LEN(tc_InputFile) > 1 ;
|
||||
AND LEFT(LTRIM(tc_InputFile),2) <> '\\' ;
|
||||
AND SUBSTR(LTRIM(tc_InputFile),2,1) <> ':' THEN
|
||||
tc_InputFile = FULLPATH(tc_InputFile, tc_FullPath)
|
||||
ENDIF
|
||||
|
||||
RETURN tc_InputFile
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROCEDURE get_SeparatedLineAndComment
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
|
||||
@@ -16751,6 +17108,7 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
|
||||
#ENDIF
|
||||
|
||||
_MEMBERDATA = [<VFPData>] ;
|
||||
+ [<memberdata name="c_inputfile" display="c_InputFile"/>] ;
|
||||
+ [<memberdata name="_cmntstyle" display="_CmntStyle"/>] ;
|
||||
+ [<memberdata name="_debug" display="_Debug"/>] ;
|
||||
+ [<memberdata name="_encrypted" display="_Encrypted"/>] ;
|
||||
@@ -16789,6 +17147,7 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
|
||||
+ [<memberdata name="decode_specialcodes_cr_lf" display="decode_SpecialCodes_CR_LF"/>] ;
|
||||
+ [<memberdata name="encode_specialcodes_cr_lf" display="encode_SpecialCodes_CR_LF"/>] ;
|
||||
+ [<memberdata name="getformatteddeviceinfotext" display="getFormattedDeviceInfoText"/>] ;
|
||||
+ [<memberdata name="getfilesnotfound" display="getFilesNotFound"/>] ;
|
||||
+ [<memberdata name="parsedeviceinfo" display="parseDeviceInfo"/>] ;
|
||||
+ [<memberdata name="parsenullterminatedvalue" display="parseNullTerminatedValue"/>] ;
|
||||
+ [<memberdata name="setparsedinfoline" display="setParsedInfoLine"/>] ;
|
||||
@@ -16797,6 +17156,8 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
|
||||
+ [</VFPData>]
|
||||
|
||||
|
||||
c_InputFile = ''
|
||||
|
||||
*-- Proj.Info
|
||||
_CmntStyle = 1
|
||||
_Debug = .F.
|
||||
@@ -16929,7 +17290,7 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
|
||||
LPARAMETERS tcDevInfo
|
||||
|
||||
TRY
|
||||
WITH THIS
|
||||
WITH THIS AS cl_project OF "FOXBIN2PRG.PRG"
|
||||
._Author = .parseNullTerminatedValue( @tcDevInfo, 1, 45 )
|
||||
._Company = .parseNullTerminatedValue( @tcDevInfo, 47, 45 )
|
||||
._Address = .parseNullTerminatedValue( @tcDevInfo, 93, 45 )
|
||||
@@ -16972,7 +17333,7 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
|
||||
tcDevInfo = REPLICATE( CHR(0), 1795 )
|
||||
ENDIF
|
||||
|
||||
WITH THIS
|
||||
WITH THIS AS cl_project OF "FOXBIN2PRG.PRG"
|
||||
tcDevInfo = STUFF( tcDevInfo, 1, LEN(._Author), ._Author)
|
||||
tcDevInfo = STUFF( tcDevInfo, 47, LEN(._Company), ._Company)
|
||||
tcDevInfo = STUFF( tcDevInfo, 93, LEN(._Address), ._Address)
|
||||
@@ -17015,7 +17376,7 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
|
||||
LOCAL lcText
|
||||
lcText = ''
|
||||
|
||||
WITH THIS
|
||||
WITH THIS AS cl_project OF "FOXBIN2PRG.PRG"
|
||||
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||
<<C_DEVINFO_I>>
|
||||
_Author = "<<._Author>>"
|
||||
@@ -17055,6 +17416,47 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
|
||||
ENDPROC
|
||||
|
||||
|
||||
FUNCTION getFilesNotFound(taFiles) AS Integer
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
|
||||
* taFiles (?@ OUT) Codifica los caracteres ASCII 10 y 13 de CHR(nCode) a {nCode}
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
EXTERNAL ARRAY taFiles
|
||||
|
||||
TRY
|
||||
LOCAL I, lnCount, laDirFile(1,5), lcHomeDir
|
||||
|
||||
WITH THIS AS cl_project OF "FOXBIN2PRG.PRG"
|
||||
DIMENSION taFiles( MAX(1,.Count), 2)
|
||||
taFiles(1,1) = ''
|
||||
taFiles(1,2) = .F.
|
||||
lnCount = 0
|
||||
lcHomeDir = ADDBS( EVL(JUSTPATH(.c_InputFile), ._HomeDir) )
|
||||
|
||||
FOR I = 1 TO .Count
|
||||
taFiles(I,1) = .Item(I).Name
|
||||
taFiles(I,2) = ( ADIR(laDirFile, .get_AbsolutePath( taFiles(I,1), lcHomeDir) ) = 1 )
|
||||
|
||||
IF NOT taFiles(I,2)
|
||||
lnCount = lnCount + 1
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
ENDWITH && THIS
|
||||
|
||||
CATCH TO loEx
|
||||
IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0
|
||||
SET STEP ON
|
||||
ENDIF
|
||||
|
||||
THROW
|
||||
|
||||
ENDTRY
|
||||
|
||||
RETURN lnCount
|
||||
ENDFUNC
|
||||
|
||||
|
||||
ENDDEFINE
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user