API-PJX: Nuevo método loadModule() que devuelve el objeto Project interno de FoxBin2Prg cuando se pasa un nombre de proyecto existente

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:
fdbozzo
2015-06-21 17:08:49 +02:00
3 changed files with 370 additions and 31 deletions

View File

@@ -18,18 +18,20 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_bin_a_prg__indentMemo AS FxuTestCase OF
#DEFINE C_ENDIF '#ENDIF'
#DEFINE C_DEFINE_CLASS 'DEFINE CLASS'
#DEFINE C_ENDDEFINE_CLASS 'ENDDEFINE'
icObj = NULL
icObj = NULL
*******************************************************************************************************************************************
FUNCTION SETUP
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG"
SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG', 'foxbin2prg.prg'
oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG')
oFXU_LIB.setup_comun()
THIS.icObj = NEWOBJECT("c_conversor_bin_a_prg", "FOXBIN2PRG.PRG")
THIS.icObj = CREATEOBJECT("c_conversor_bin_a_prg")
_SCREEN.AddProperty( "o_FoxBin2Prg_Lang", CREATEOBJECT("CL_LANG") )
loObj = THIS.icObj
loObj.l_Test = .T.
@@ -47,7 +49,7 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_bin_a_prg__indentMemo AS FxuTestCase OF
oFXU_LIB.teardown_comun()
oFXU_LIB = NULL
ENDIF
RELEASE PROCEDURE 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
RELEASE PROCEDURE 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG', 'foxbin2prg.prg'
ENDFUNC

View File

@@ -19,9 +19,7 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__evaluateConfiguration AS FxuTestCase
oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG')
oFXU_LIB.setup_comun()
THIS.ioFB2P = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG")
*loFB2P = THIS.ioFB2P
*loFB2P.l_Test = .F.
THIS.ioFB2P = CREATEOBJECT("c_foxbin2prg")
ERASE ('TESTS\DATOS_TEST\foxbin2prg.cfg')
ERASE ('TESTS\DATOS_TEST\foxbin2prg.cfg.bak')
@@ -152,7 +150,8 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__evaluateConfiguration AS FxuTestCase
TRY
loEx = NULL
loFB2P_Esperado = CREATEOBJECT("EMPTY")
THIS.ioFB2P = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG", "", FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest ) )
THIS.ioFB2P = NULL
THIS.ioFB2P = CREATEOBJECT("c_foxbin2prg", FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest ) )
loFB2P = THIS.ioFB2P
*loFB2P.c_Foxbin2prg_ConfigFile = FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest )
@@ -653,7 +652,8 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__evaluateConfiguration AS FxuTestCase
TRY
loEx = NULL
THIS.ioFB2P = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG", "", FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest ) )
THIS.ioFB2P = NULL
THIS.ioFB2P = CREATEOBJECT("c_foxbin2prg", FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest ) )
loFB2P = THIS.ioFB2P
*loFB2P.c_Foxbin2prg_ConfigFile = FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest )
loFB2P.l_ShowErrors = .F.

View File

@@ -2896,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
@@ -3014,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 ;
, 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
@@ -3047,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'
@@ -3127,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
@@ -3154,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'
@@ -3235,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
@@ -3656,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
@@ -3908,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
@@ -4944,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"/>] ;
@@ -5927,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
@@ -14727,13 +14963,14 @@ 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 )
@@ -14748,9 +14985,14 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
WITH THIS AS c_conversor_pjx_a_prg OF 'FOXBIN2PRG.PRG'
IF toFoxBin2Prg.l_ProcessFiles THEN
.loadFile( @toModulo, @toEx, @toFoxBin2Prg, @loProject )
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
.updateProgressbar( 'Processing Project info...', 2, 3, 1 )
loProject = toModulo
loServerHead = loProject._ServerHead
C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER()
@@ -14986,17 +15228,17 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
ENDPROC
PROCEDURE loadFile
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
* 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, toProject
LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg
#IF .F.
LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
LOCAL toProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG'
LOCAL toModulo AS CL_PROJECT OF 'FOXBIN2PRG.PRG'
#ENDIF
DODEFAULT( @toModulo, @toEx, @toFoxBin2Prg )
@@ -15020,8 +15262,10 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
*-- Obtengo los archivos del proyecto
loProject = CREATEOBJECT('CL_PROJECT')
toProject = loProject
toModulo = loProject
loServerHead = loProject._ServerHead
loProject.c_InputFile = .c_InputFile
SCATTER MEMO NAME loReg
IF toFoxBin2Prg.l_NoTimestamps
@@ -16204,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"/>] ;
@@ -16241,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)
@@ -16292,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>]
@@ -16328,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)
@@ -16816,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"/>] ;
@@ -16854,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"/>] ;
@@ -16862,6 +17156,8 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
+ [</VFPData>]
c_InputFile = ''
*-- Proj.Info
_CmntStyle = 1
_Debug = .F.
@@ -16994,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 )
@@ -17037,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)
@@ -17080,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>>"
@@ -17120,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