- Add some fixes to existent ut_tests

- Add missing tests
- Bug Fix: At least one of the class-per-file files do not have CR_LF at the end, then when assembling the class or form some structures (ENDIF/ENDCASE/ENDDEF/etc) can be joined with the next, making them erroneous (Ryan Harris)
- BugFix: Incompatible with VFPA (#36) (Eric Selje)
- Bug Fix: Manejo de AutoIncrement incompatible con Project Explorer (Dan Lauer) [Fixed by Doug Hennig]
- Bug Fix: DBF conversion fails if some field name is a reserved keyword like UNIQUE (DAJU78)
- Bug Fix: VCX/SCX properties named "note" are not properly converted (Tracy Pearson)
This commit is contained in:
fdbozzo
2020-04-01 17:46:46 +02:00
16 changed files with 447 additions and 123 deletions

View File

@@ -36,6 +36,22 @@ DEFINE CLASS cl_commandgroup AS commandgroup && Descripci
ENDDEFINE ENDDEFINE
DEFINE CLASS cl_cust_rsv_kwd AS custom
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: nota
*p: note && Reserved keyword
*</DefinedPropArrayMethod>
Height = 53
Name = "cl_cust_rsv_kwd"
nota =
note = && Reserved keyword
Width = 135
ENDDEFINE
DEFINE CLASS cl_form AS form OLEPUBLIC && mi OLE server DLL DEFINE CLASS cl_form AS form OLEPUBLIC && mi OLE server DLL
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" ProjectClassIcon="bmps\container.ico" ClassIcon="bmps\container.ico" /> *< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" ProjectClassIcon="bmps\container.ico" ClassIcon="bmps\container.ico" />

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,25 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.19" SourceFile="github_issues.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS issue_26 AS custom
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
Name = "issue_26"
PROCEDURE Init
* REPORTED BY KIRIDES - 09/07/2018
* https://github.com/fdbozzo/foxbin2prg/issues/26
*-------------------------------------------------
create cursor (lcTabelle) (;
SOME_ID N(4),;
TEXT C(50),; && This is Any Comment
SOME_OTHER N(10,2);
)
ENDPROC
ENDDEFINE

Binary file not shown.

View File

@@ -119,7 +119,12 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_bin_a_prg AS FxuTestCase OF FxuTestCase
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. ) *loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
THIS.Evaluate_results( loEx, lnCodError_Esperado ) THIS.Evaluate_results( loEx, lnCodError_Esperado )

View File

@@ -109,7 +109,12 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_bin AS FxuTestCase OF FxuTestCase
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. ) *loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
THIS.Evaluate_results( loEx, lnCodError_Esperado ) THIS.Evaluate_results( loEx, lnCodError_Esperado )

View File

@@ -112,14 +112,30 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbc AS FxuTestCase OF FxuTestCase
oFXU_LIB.copiarArchivosParaTest( 'EVENTSFILE.PRG' ) oFXU_LIB.copiarArchivosParaTest( 'EVENTSFILE.PRG' )
*-- Genero el DC2 *-- Genero el DC2
loCnv.execute( FORCEEXT(lc_OutputFile,'DBC'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'DBC'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Regenero el DBC *-- Regenero el DBC
loCnv.execute( FORCEEXT(lc_OutputFile,'DC2'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'DC2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Renombro el DC2 a DC3 (ORIGINAL) *-- Renombro el DC2 a DC3 (ORIGINAL)
RENAME (FORCEEXT(lc_OutputFile,'DC2')) TO (FORCEEXT(lc_OutputFile,'DC3')) RENAME (FORCEEXT(lc_OutputFile,'DC2')) TO (FORCEEXT(lc_OutputFile,'DC3'))
*-- Genero el DC2 desde el DBC regenerado *-- Genero el DC2 desde el DBC regenerado
*WAIT WINDOW TIMEOUT 2 && Para forzar una diferencia de 2 segundos entre el DC2 y el DC3 *WAIT WINDOW TIMEOUT 2 && Para forzar una diferencia de 2 segundos entre el DC2 y el DC3
loCnv.execute( FORCEEXT(lc_OutputFile,'DBC'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'DBC'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Comparo los DC2 y DC3 *-- Comparo los DC2 y DC3
lcDC2 = STREXTRACT( FILETOSTR( FORCEEXT(lc_OutputFile,'DC2') ), '<DATABASE>', '</DATABASE>' ) lcDC2 = STREXTRACT( FILETOSTR( FORCEEXT(lc_OutputFile,'DC2') ), '<DATABASE>', '</DATABASE>' )
lcDC3 = STREXTRACT( FILETOSTR( FORCEEXT(lc_OutputFile,'DC3') ), '<DATABASE>', '</DATABASE>' ) lcDC3 = STREXTRACT( FILETOSTR( FORCEEXT(lc_OutputFile,'DC3') ), '<DATABASE>', '</DATABASE>' )

View File

@@ -113,7 +113,11 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase
oFXU_LIB.copiarArchivosParaTest( lc_File ) oFXU_LIB.copiarArchivosParaTest( lc_File )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
SELECT 0 SELECT 0
USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
@@ -190,7 +194,11 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase
oFXU_LIB.copiarArchivosParaTest( lc_File ) oFXU_LIB.copiarArchivosParaTest( lc_File )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
SELECT 0 SELECT 0
USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
@@ -263,8 +271,17 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
loCnv.execute( FORCEEXT(lc_OutputFile,'DBF'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'DBF'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
loCnv.execute( FORCEEXT(lc_OutputFile,'DB2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'DB2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
SELECT 0 SELECT 0
USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
@@ -343,8 +360,17 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
loCnv.execute( FORCEEXT(lc_OutputFile,'DBF'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'DBF'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
loCnv.execute( FORCEEXT(lc_OutputFile,'DB2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'DB2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
SELECT 0 SELECT 0
USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN USE (FORCEEXT(lc_InputFile,'DBF')) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN

View File

@@ -1,7 +1,7 @@
DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_mnx AS FxuTestCase OF FxuTestCase.prg DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_mnx AS FxuTestCase OF FxuTestCase.prg
#IF .F. #IF .F.
LOCAL THIS AS ft__foxbin2prg__c_conversor_prg_a_mnx OF ft__foxbin2prg__c_conversor_prg_a_mnx.PRG LOCAL THIS AS ft__foxbin2prg__c_conversor_prg_a_mnx OF ft__foxbin2prg__c_conversor_prg_a_mnx.prg
#ENDIF #ENDIF
#DEFINE C_FB2P_VALUE_I '<fb2p_value>' #DEFINE C_FB2P_VALUE_I '<fb2p_value>'
@@ -111,24 +111,39 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_mnx AS FxuTestCase OF FxuTestCase
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
*-- Genero el DC2 *-- Genero el DC2
loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Regenero el DBC *-- Regenero el DBC
loCnv.execute( FORCEEXT(lc_OutputFile,'MN2'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MN2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Renombro el DC2 a DC3 (ORIGINAL) *-- Renombro el DC2 a DC3 (ORIGINAL)
RENAME (FORCEEXT(lc_OutputFile,'MN2')) TO (FORCEEXT(lc_OutputFile,'MN3')) RENAME (FORCEEXT(lc_OutputFile,'MN2')) TO (FORCEEXT(lc_OutputFile,'MN3'))
*-- Genero el DC2 desde el DBC regenerado *-- Genero el DC2 desde el DBC regenerado
loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Comparo los MN2 y MN3 *-- Comparo los MN2 y MN3
lnLenHeader = LEN( loCnv.get_PROGRAM_HEADER() ) lnLenHeader = LEN( loCnv.get_PROGRAM_HEADER() )
lcMN2 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN2') ), lnLenHeader ) lcMN2 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN2') ), lnLenHeader )
lcMN3 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN3') ), lnLenHeader ) lcMN3 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN3') ), lnLenHeader )
*-- Visualizaci<63>n de valores *-- Visualizaci<63>n de valores
THIS.messageout( 'Bytes MN3: ' + TRANSFORM(LEN(lcMN3)) ) THIS.messageout( 'Bytes MN3: ' + TRANSFORM(LEN(lcMN3)) )
THIS.messageout( 'Bytes MN2: ' + TRANSFORM(LEN(lcMN2)) ) THIS.messageout( 'Bytes MN2: ' + TRANSFORM(LEN(lcMN2)) )
*-- Evaluaci<63>n de valores *-- Evaluaci<63>n de valores
this.assertequals( lcMN2, lcMN3, '[Comparaci<63>n MN2 y MN3]' ) this.assertequals( lcMN2, lcMN3, '[Comparaci<63>n MN2 y MN3]' )
@@ -171,24 +186,40 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_mnx AS FxuTestCase OF FxuTestCase
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
*-- Genero el DC2 *-- Genero el DC2
loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Regenero el DBC *-- Regenero el DBC
loCnv.execute( FORCEEXT(lc_OutputFile,'MN2'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MN2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Renombro el DC2 a DC3 (ORIGINAL) *-- Renombro el DC2 a DC3 (ORIGINAL)
RENAME (FORCEEXT(lc_OutputFile,'MN2')) TO (FORCEEXT(lc_OutputFile,'MN3')) RENAME (FORCEEXT(lc_OutputFile,'MN2')) TO (FORCEEXT(lc_OutputFile,'MN3'))
*-- Genero el DC2 desde el DBC regenerado *-- Genero el DC2 desde el DBC regenerado
loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Comparo los MN2 y MN3 *-- Comparo los MN2 y MN3
lnLenHeader = LEN( loCnv.get_PROGRAM_HEADER() ) lnLenHeader = LEN( loCnv.get_PROGRAM_HEADER() )
lcMN2 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN2') ), lnLenHeader ) lcMN2 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN2') ), lnLenHeader )
lcMN3 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN3') ), lnLenHeader ) lcMN3 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN3') ), lnLenHeader )
*-- Visualizaci<63>n de valores *-- Visualizaci<63>n de valores
THIS.messageout( 'Bytes MN3: ' + TRANSFORM(LEN(lcMN3)) ) THIS.messageout( 'Bytes MN3: ' + TRANSFORM(LEN(lcMN3)) )
THIS.messageout( 'Bytes MN2: ' + TRANSFORM(LEN(lcMN2)) ) THIS.messageout( 'Bytes MN2: ' + TRANSFORM(LEN(lcMN2)) )
*-- Evaluaci<63>n de valores *-- Evaluaci<63>n de valores
this.assertequals( lcMN2, lcMN3, '[Comparaci<63>n MN2 y MN3]' ) this.assertequals( lcMN2, lcMN3, '[Comparaci<63>n MN2 y MN3]' )
@@ -231,24 +262,40 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_mnx AS FxuTestCase OF FxuTestCase
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
*-- Genero el DC2 *-- Genero el DC2
loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Regenero el DBC *-- Regenero el DBC
loCnv.execute( FORCEEXT(lc_OutputFile,'MN2'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MN2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Renombro el DC2 a DC3 (ORIGINAL) *-- Renombro el DC2 a DC3 (ORIGINAL)
RENAME (FORCEEXT(lc_OutputFile,'MN2')) TO (FORCEEXT(lc_OutputFile,'MN3')) RENAME (FORCEEXT(lc_OutputFile,'MN2')) TO (FORCEEXT(lc_OutputFile,'MN3'))
*-- Genero el DC2 desde el DBC regenerado *-- Genero el DC2 desde el DBC regenerado
loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Comparo los MN2 y MN3 *-- Comparo los MN2 y MN3
lnLenHeader = LEN( loCnv.get_PROGRAM_HEADER() ) lnLenHeader = LEN( loCnv.get_PROGRAM_HEADER() )
lcMN2 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN2') ), lnLenHeader ) lcMN2 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN2') ), lnLenHeader )
lcMN3 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN3') ), lnLenHeader ) lcMN3 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN3') ), lnLenHeader )
*-- Visualizaci<63>n de valores *-- Visualizaci<63>n de valores
THIS.messageout( 'Bytes MN3: ' + TRANSFORM(LEN(lcMN3)) ) THIS.messageout( 'Bytes MN3: ' + TRANSFORM(LEN(lcMN3)) )
THIS.messageout( 'Bytes MN2: ' + TRANSFORM(LEN(lcMN2)) ) THIS.messageout( 'Bytes MN2: ' + TRANSFORM(LEN(lcMN2)) )
*-- Evaluaci<63>n de valores *-- Evaluaci<63>n de valores
this.assertequals( lcMN2, lcMN3, '[Comparaci<63>n MN2 y MN3]' ) this.assertequals( lcMN2, lcMN3, '[Comparaci<63>n MN2 y MN3]' )
@@ -291,24 +338,40 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_mnx AS FxuTestCase OF FxuTestCase
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
*-- Genero el DC2 *-- Genero el DC2
loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Regenero el DBC *-- Regenero el DBC
loCnv.execute( FORCEEXT(lc_OutputFile,'MN2'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MN2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Renombro el DC2 a DC3 (ORIGINAL) *-- Renombro el DC2 a DC3 (ORIGINAL)
RENAME (FORCEEXT(lc_OutputFile,'MN2')) TO (FORCEEXT(lc_OutputFile,'MN3')) RENAME (FORCEEXT(lc_OutputFile,'MN2')) TO (FORCEEXT(lc_OutputFile,'MN3'))
*-- Genero el DC2 desde el DBC regenerado *-- Genero el DC2 desde el DBC regenerado
loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Comparo los MN2 y MN3 *-- Comparo los MN2 y MN3
lnLenHeader = LEN( loCnv.get_PROGRAM_HEADER() ) lnLenHeader = LEN( loCnv.get_PROGRAM_HEADER() )
lcMN2 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN2') ), lnLenHeader ) lcMN2 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN2') ), lnLenHeader )
lcMN3 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN3') ), lnLenHeader ) lcMN3 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN3') ), lnLenHeader )
*-- Visualizaci<63>n de valores *-- Visualizaci<63>n de valores
THIS.messageout( 'Bytes MN3: ' + TRANSFORM(LEN(lcMN3)) ) THIS.messageout( 'Bytes MN3: ' + TRANSFORM(LEN(lcMN3)) )
THIS.messageout( 'Bytes MN2: ' + TRANSFORM(LEN(lcMN2)) ) THIS.messageout( 'Bytes MN2: ' + TRANSFORM(LEN(lcMN2)) )
*-- Evaluaci<63>n de valores *-- Evaluaci<63>n de valores
this.assertequals( lcMN2, lcMN3, '[Comparaci<63>n MN2 y MN3]' ) this.assertequals( lcMN2, lcMN3, '[Comparaci<63>n MN2 y MN3]' )
@@ -351,24 +414,40 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_mnx AS FxuTestCase OF FxuTestCase
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
*-- Genero el DC2 *-- Genero el DC2
loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Regenero el DBC *-- Regenero el DBC
loCnv.execute( FORCEEXT(lc_OutputFile,'MN2'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MN2'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Renombro el DC2 a DC3 (ORIGINAL) *-- Renombro el DC2 a DC3 (ORIGINAL)
RENAME (FORCEEXT(lc_OutputFile,'MN2')) TO (FORCEEXT(lc_OutputFile,'MN3')) RENAME (FORCEEXT(lc_OutputFile,'MN2')) TO (FORCEEXT(lc_OutputFile,'MN3'))
*-- Genero el DC2 desde el DBC regenerado *-- Genero el DC2 desde el DBC regenerado
loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile,'MNX'), '', '', '', '1', '0', '1',.F.,.F.,.T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Comparo los MN2 y MN3 *-- Comparo los MN2 y MN3
lnLenHeader = LEN( loCnv.get_PROGRAM_HEADER() ) lnLenHeader = LEN( loCnv.get_PROGRAM_HEADER() )
lcMN2 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN2') ), lnLenHeader ) lcMN2 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN2') ), lnLenHeader )
lcMN3 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN3') ), lnLenHeader ) lcMN3 = SUBSTR( FILETOSTR( FORCEEXT(lc_OutputFile,'MN3') ), lnLenHeader )
*-- Visualizaci<63>n de valores *-- Visualizaci<63>n de valores
THIS.messageout( 'Bytes MN3: ' + TRANSFORM(LEN(lcMN3)) ) THIS.messageout( 'Bytes MN3: ' + TRANSFORM(LEN(lcMN3)) )
THIS.messageout( 'Bytes MN2: ' + TRANSFORM(LEN(lcMN2)) ) THIS.messageout( 'Bytes MN2: ' + TRANSFORM(LEN(lcMN2)) )
*-- Evaluaci<63>n de valores *-- Evaluaci<63>n de valores
this.assertequals( lcMN2, lcMN3, '[Comparaci<63>n MN2 y MN3]' ) this.assertequals( lcMN2, lcMN3, '[Comparaci<63>n MN2 y MN3]' )

View File

@@ -314,8 +314,17 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. )
loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
SELECT 0 SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
@@ -395,8 +404,17 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, 'LBX' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, 'LBX' ) )
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, 'LBT' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, 'LBT' ) )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. )
loCnv.execute( lc_OutputFile2, '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
lnCodError = loCnv.execute( lc_OutputFile2, '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
SELECT 0 SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
@@ -472,8 +490,17 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. )
loCnv.execute( lc_OutputFile2, '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
lnCodError = loCnv.execute( lc_OutputFile2, '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
SELECT 0 SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
@@ -555,8 +582,17 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. )
loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
SELECT 0 SELECT 0
USE (lc_OutputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN USE (lc_OutputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN
@@ -640,8 +676,17 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. )
loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
SELECT 0 SELECT 0
USE (lc_OutputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN USE (lc_OutputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN
@@ -735,8 +780,17 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. )
loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
SELECT 0 SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
@@ -819,8 +873,17 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. )
loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
SELECT 0 SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
@@ -904,7 +967,12 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. ) *loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
*-- Comparo resultados *-- Comparo resultados
@@ -962,8 +1030,17 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. ) lnCodError = loCnv.execute( lc_OutputFile, '', '', '', '1', '0', '1', '', '', .T. )
loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '1', '0', '1', '', '', .T. )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
SELECT 0 SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN
@@ -1104,16 +1181,32 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
CLEAR CLASSLIB (lcLib) CLEAR CLASSLIB (lcLib)
*-- Genero TX2 *-- Genero TX2
loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR(), '1', '0' ) lnCodError = loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR(), '1', '0' )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Genero BIN *-- Genero BIN
loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_OutputFile),2 ) + '2' ), .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR(), '1', '0' ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_OutputFile),2 ) + '2' ), .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR(), '1', '0' )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Genero TX2 *-- Genero TX2
loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR(), '1', '0' ) lnCodError = loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR(), '1', '0' )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Genero BIN *-- Genero BIN
loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_OutputFile),2 ) + '2' ), .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR(), '1', '0' ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_OutputFile),2 ) + '2' ), .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR(), '1', '0' )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Genero BMP con libreria regenerada *-- Genero BMP con libreria regenerada
SET CLASSLIB TO (lcLib) ADDITIVE SET CLASSLIB TO (lcLib) ADDITIVE
@@ -1374,7 +1467,12 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
COPY FILE (lc_OutputFileTx2) TO (lc_OutputFileBak) COPY FILE (lc_OutputFileTx2) TO (lc_OutputFileBak)
*-- Genero TX2 *-- Genero TX2
loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() ) lnCodError = loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
lnNulls = OCCURS( CHR(0), FILETOSTR( lc_OutputFileTx2 ) ) lnNulls = OCCURS( CHR(0), FILETOSTR( lc_OutputFileTx2 ) )
*-- Comparo resultados *-- Comparo resultados
@@ -1431,7 +1529,12 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
COPY FILE (lc_OutputFileTx2) TO (lc_OutputFileBak) COPY FILE (lc_OutputFileTx2) TO (lc_OutputFileBak)
*-- Genero TX2 *-- Genero TX2
loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() ) lnCodError = loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
lnNulls = OCCURS( CHR(0), FILETOSTR( lc_OutputFileTx2 ) ) lnNulls = OCCURS( CHR(0), FILETOSTR( lc_OutputFileTx2 ) )
*-- Comparo resultados *-- Comparo resultados
@@ -1493,13 +1596,25 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
COPY FILE (lc_OutputFileTx2) TO (lc_OutputFileBak) COPY FILE (lc_OutputFileTx2) TO (lc_OutputFileBak)
*-- Genero TX2 *-- Genero TX2
loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() ) lnCodError = loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Genero BIN *-- Genero BIN
loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_OutputFile),2 ) + '2' ), .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() ) lnCodError = loCnv.execute( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_OutputFile),2 ) + '2' ), .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Genero TX2 *-- Genero TX2
loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() ) lnCodError = loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Comparo resultados *-- Comparo resultados
THIS.messageout( "Se compara el archivo de texto generado con el original luego de 2 regeneraciones, para saber si hay cambios" ) THIS.messageout( "Se compara el archivo de texto generado con el original luego de 2 regeneraciones, para saber si hay cambios" )
@@ -1645,7 +1760,11 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, '*' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, '*' ) )
*-- Genero TX2 *-- Genero TX2
loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() ) lnCodError = loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Comparo resultados *-- Comparo resultados
THIS.messageout( "Respuesta esperada = .T." ) THIS.messageout( "Respuesta esperada = .T." )
@@ -1702,7 +1821,11 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, '*' ) ) oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, '*' ) )
*-- Genero TX2 *-- Genero TX2
loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() ) lnCodError = loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Comparo resultados *-- Comparo resultados
THIS.messageout( "Respuesta esperada = .T." ) THIS.messageout( "Respuesta esperada = .T." )
@@ -1781,10 +1904,18 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
*loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() ) *loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
*-- Genero BIN *-- Genero BIN
loCnv.execute( lc_OutputFileTx2, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() ) lnCodError = loCnv.execute( lc_OutputFileTx2, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Genero TX2 *-- Genero TX2
loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() ) lnCodError = loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
IF lnCodError > 0
ERROR (loCnv.c_TextErr)
ENDIF
*-- Comparo resultados *-- Comparo resultados
THIS.messageout( "Se compara el archivo de texto generado con el original luego de 2 regeneraciones, para saber si hay cambios" ) THIS.messageout( "Se compara el archivo de texto generado con el original luego de 2 regeneraciones, para saber si hay cambios" )

Binary file not shown.

View File

@@ -33,7 +33,7 @@ _AutoIncrement = "0"
*<BuildProj> *<BuildProj>
*<.HomeDir = 'h:\desa\foxbin2prg' /> *<.HomeDir = 'c:\desa\foxbin2prg' />
FOR EACH loProject IN _VFP.Projects FOXOBJECT FOR EACH loProject IN _VFP.Projects FOXOBJECT
loProject.Close() loProject.Close()
@@ -50,49 +50,49 @@ MODIFY PROJECT 'foxbin2prg.pjx' NOWAIT NOSHOW NOPROJECTHOOK
loProject = _VFP.Projects('foxbin2prg.pjx') loProject = _VFP.Projects('foxbin2prg.pjx')
WITH loProject.FILES WITH loProject.FILES
.ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('foxbin2prg.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" /> .ADD('foxbin2prg.ico') && *< FileMetadata: Type="x" Cpid="0" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('foxbin2prg.jpg') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('foxbin2prg.jpg') && *< FileMetadata: Type="x" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" /> .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" User="" />
.ADD('props_all.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_all.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_checkbox.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_checkbox.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_collection.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_collection.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_combobox.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_combobox.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_commandbutton.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_commandbutton.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_commandgroup.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_commandgroup.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_container.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_container.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_control.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_control.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_cursor.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_cursor.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_cursoradapter.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_cursoradapter.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_dataenvironment.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_dataenvironment.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_editbox.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_editbox.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_form.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_form.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_formset.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_formset.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_grid.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_grid.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_grid_column.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_grid_column.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_grid_header.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_grid_header.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_hyperlink.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_hyperlink.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_image.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_image.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_label.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_label.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_line.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_line.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_listbox.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_listbox.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_olebound.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_olebound.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_optiongroup.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_optiongroup.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_optiongroup_option.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_optiongroup_option.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_pageframe.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_pageframe.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_pageframe_page.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_pageframe_page.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_projecthook.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_projecthook.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_relation.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_relation.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_reportlistener.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_reportlistener.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_separator.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_separator.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_shape.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_shape.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_spinner.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_spinner.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_textbox.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_textbox.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_timer.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_timer.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_toolbar.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_toolbar.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_xmladapter.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_xmladapter.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_xmlfield.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_xmlfield.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
.ADD('props_xmltable.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> .ADD('props_xmltable.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" User="" />
*</BuildProj> *</BuildProj>
.ITEM('__newproject.f2b').Remove() .ITEM('__newproject.f2b').Remove()
@@ -119,6 +119,7 @@ WITH loProject
*<.CmntStyle = 1 /> *<.CmntStyle = 1 />
*<.NoLogo = .F. /> *<.NoLogo = .F. />
*<.SaveCode = .T. /> *<.SaveCode = .T. />
*<.User = '' />
.ProjectHookLibrary = '' .ProjectHookLibrary = ''
.ProjectHookClass = '' .ProjectHookClass = ''
*</ProjectProperties> *</ProjectProperties>

Binary file not shown.

Binary file not shown.

View File

@@ -220,6 +220,11 @@
* 09/07/2018 FDBOZZO v1.19.51.3 Bug Fix: Error 1098, Cannot find ... [ENDT] that closes ... [TEXT] Issue#26 when there is a field named TEXT as first line-word (KIRIDES) * 09/07/2018 FDBOZZO v1.19.51.3 Bug Fix: Error 1098, Cannot find ... [ENDT] that closes ... [TEXT] Issue#26 when there is a field named TEXT as first line-word (KIRIDES)
* 10/07/2018 FDBOZZO v1.19.51.4 Bug Fix: El ordenamiento alfabético de los objetos de los ADD OBJECT puede causar que algunos objetos se creen en el orden erróneo, provocando comportamientos inesperados (Jochen Kauz) * 10/07/2018 FDBOZZO v1.19.51.4 Bug Fix: El ordenamiento alfabético de los objetos de los ADD OBJECT puede causar que algunos objetos se creen en el orden erróneo, provocando comportamientos inesperados (Jochen Kauz)
* 14/02/2019 TRACY_P v1.19.51.5 Enhancement: Make FoxBin2Prg more COM friendly when using ESC key (Tracy Pearson) * 14/02/2019 TRACY_P v1.19.51.5 Enhancement: Make FoxBin2Prg more COM friendly when using ESC key (Tracy Pearson)
* 01/04/2020 RHARRIS v1.19.51.6 Bug Fix: Si alguno de los archivos-por-clase no tiene CR_LF al final, al ensamblar la clase se pueden superponer instrucciones de forma inválida (Ryan Harris)
* 01/04/2020 FDBOZZO v1.19.51.6 Bug Fix: Incompatible with VFPA (#36) (Eric Selje)
* 01/04/2020 DH v1.19.51 Bug Fix: Manejo de AutoIncrement incompatible con Project Explorer (Dan Lauer)
* 01/04/2020 FDBOZZO v1.19.51 Bug Fix: La conversión de tablas falla si algún campo contiene una palabra reservada como UNIQUE (DAJU78)
* 01/04/2020 FDBOZZO v1.19.51 Bug Fix: No se respetan las propiedades de VCX/SCX con nombre "note" (Tracy Pearson)
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES> * </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
* *
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
@@ -347,6 +352,11 @@
* 20/06/2018 Jairo A/Juan CP Reporte Bug v1.19.51: Cuando se exporta un DBF que pertenece a un DBC sin eventos, falla (Arreglado en v1.19.51.2) * 20/06/2018 Jairo A/Juan CP Reporte Bug v1.19.51: Cuando se exporta un DBF que pertenece a un DBC sin eventos, falla (Arreglado en v1.19.51.2)
* 09/07/2018 KIRIDES Reporte Bug v1.19.51: Error 1098, Cannot find ... [ENDT] that closes ... [TEXT] Issue#26 when there is a field named TEXT as first line-word (Se arregla en v1.19.51.3) * 09/07/2018 KIRIDES Reporte Bug v1.19.51: Error 1098, Cannot find ... [ENDT] that closes ... [TEXT] Issue#26 when there is a field named TEXT as first line-word (Se arregla en v1.19.51.3)
* 10/07/2018 Jochen Kauz Reporte Bug v1.19.51: El ordenamiento alfabético de los objetos de los ADD OBJECT puede causar que algunos objetos se creen en el orden erróneo, provocando comportamientos inesperados (Se arregla en v1.19.51.3) * 10/07/2018 Jochen Kauz Reporte Bug v1.19.51: El ordenamiento alfabético de los objetos de los ADD OBJECT puede causar que algunos objetos se creen en el orden erróneo, provocando comportamientos inesperados (Se arregla en v1.19.51.3)
* 14/03/2019 Tracy Pearson Reporte Bug v1.19.51: No se respetan las propiedades de VCX/SCX con nombre "note" (Se arregla en v1.19.51.6)
* 18/04/2019 DAJU78 Reporte Bug v1.19.51: La conversión de tablas falla si algún campo contiene una palabra reservada como UNIQUE (Se arregla en v1.19.51.6)
* 19/07/2019 Dan Lauer Reporte Bug v1.19.51: Manejo de AutoIncrement incompatible con Project Explorer (Arreglado en v1.19.49.6, con solución de Doug Hennnig)
* 13/11/2019 Eric Selje Reporte Bug v1.19.51: Incompatible with VFPA (#36) (Se arregla en v1.19.51.6)
* 31/03/2020 Ryan Harris Reporte Bug v1.19.51: Si alguno de los archivos-por-clase no tiene CR_LF al final, al ensamblar la clase se pueden superponer instrucciones de forma inválida (Se arregla en v1.19.51.6)
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)> * </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
* *
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
@@ -2862,7 +2872,7 @@ DEFINE CLASS c_foxbin2prg AS Session
*-------------------------------------------------------------------------------------------------------------- *--------------------------------------------------------------------------------------------------------------
LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress ; LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress ;
, toModulo, toEx AS EXCEPTION, tlRelanzarError, tcOriginalFileName, tcRecompile, tcNoTimestamps ; , toModulo, toEx AS EXCEPTION, tlRelanzarError, tcOriginalFileName, tcRecompile, tcNoTimestamps ;
, tcBackupLevels, tcClearUniqueID, tcOptimizeByFilestamp, tcCFG_File , tcBackupLevels, tcClearUniqueID, tcOptimizeByFilestamp, tcCFG_File, lnVFPVersion
TRY TRY
LOCAL I, lcPath, lnCodError, lcFileSpec, lcFile, laFiles(1,5), laDirInfo(1,5), lcInputFile_Type, lc_OldSetNotify ; LOCAL I, lcPath, lnCodError, lcFileSpec, lcFile, laFiles(1,5), laDirInfo(1,5), lcInputFile_Type, lc_OldSetNotify ;
@@ -2890,6 +2900,7 @@ DEFINE CLASS c_foxbin2prg AS Session
.l_Error = .F. .l_Error = .F.
tcType = UPPER( EVL(tcType,'') ) tcType = UPPER( EVL(tcType,'') )
llEscKeyRestored = .T. llEscKeyRestored = .T.
lnVFPVersion = VERSION(5)
.declareDLL() .declareDLL()
IF THIS.l_CancelWithEscKey THEN IF THIS.l_CancelWithEscKey THEN
@@ -2901,7 +2912,10 @@ DEFINE CLASS c_foxbin2prg AS Session
ENDIF ENDIF
DO CASE DO CASE
CASE VERSION(5) < 900 OR INT( VAL( SUBSTR( VERSION(4), RAT('.', VERSION(4)) + 1 ) ) ) < 3504 CASE lnVFPVersion = 900 AND INT( VAL( SUBSTR( VERSION(4), RAT('.', VERSION(4)) + 1 ) ) ) < 3504
ERROR loLang.C_INCORRECT_VFP9_VERSION__MISSING_SP1_LOC
CASE lnVFPVersion < 900
ERROR loLang.C_INCORRECT_VFP9_VERSION__MISSING_SP1_LOC ERROR loLang.C_INCORRECT_VFP9_VERSION__MISSING_SP1_LOC
CASE '\' $ tcType CASE '\' $ tcType
@@ -2911,6 +2925,8 @@ DEFINE CLASS c_foxbin2prg AS Session
+ loLang.C_ALLOWED_VALUES_ARE_LOC + ': ' + CR_LF ; + loLang.C_ALLOWED_VALUES_ARE_LOC + ': ' + CR_LF ;
+ '*, *-, -BIN2PRG, -PRG2BIN, -SHOWMSG, -SIMERR_I0, -SIMERR_I1, -SIMERR_O1' + '*, *-, -BIN2PRG, -PRG2BIN, -SHOWMSG, -SIMERR_I0, -SIMERR_I1, -SIMERR_O1'
OTHERWISE
* OK all versions from 900(3504) and up. For VFPA Guys :)
ENDCASE ENDCASE
DO CASE DO CASE
@@ -7205,7 +7221,10 @@ DEFINE CLASS c_conversor_base AS Custom
CASE LEFT(tcLine,2) == '*<' CASE LEFT(tcLine,2) == '*<'
tcComment = tcLine tcComment = tcLine
CASE EMPTY(tcLine) OR LEFT(tcLine, 1) == '*' OR UPPER(LEFT(tcLine + ' ', 5)) == 'NOTE ' && Vacía o Comentarios CASE EMPTY(tcLine) OR LEFT(tcLine, 1) == '*' ;
OR UPPER(LEFT(tcLine + ' ', 5)) == 'NOTE ' ; && Vacía o Comentarios
AND NOT UPPER(LEFT(tcLine + ' ', 6)) == 'NOTE =' && Excluir asignaciones
*
lllineIsOnlyCommentAndNoMetadata = .T. lllineIsOnlyCommentAndNoMetadata = .T.
ENDCASE ENDCASE
@@ -10424,7 +10443,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
IF toFoxBin2Prg.l_ProcessFiles THEN IF toFoxBin2Prg.l_ProcessFiles THEN
toFoxBin2Prg.normalizeFileCapitalization( .T., lcInputFile_Class ) toFoxBin2Prg.normalizeFileCapitalization( .T., lcInputFile_Class )
C_FB2PRG_CODE = C_FB2PRG_CODE + FILETOSTR( lcInputFile_Class ) C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + FILETOSTR( lcInputFile_Class )
ENDIF ENDIF
ENDFOR ENDFOR
@@ -10925,7 +10944,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
ENDIF ENDIF
toFoxBin2Prg.normalizeFileCapitalization( .T., lcInputFile_Class ) toFoxBin2Prg.normalizeFileCapitalization( .T., lcInputFile_Class )
C_FB2PRG_CODE = C_FB2PRG_CODE + FILETOSTR( lcInputFile_Class ) C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + FILETOSTR( lcInputFile_Class )
ENDFOR ENDFOR
lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE )
@@ -12768,7 +12787,7 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin
ENDIF ENDIF
*-- Nombre, Tipo *-- Nombre, Tipo
lcFieldDef = lcFieldDef + loField._Name + ' ' + loField._Type lcFieldDef = lcFieldDef + '"' + loField._Name + '" ' + loField._Type
*-- Longitud *-- Longitud
IF INLIST( loField._Type, 'C', 'N', 'F', 'Q', 'V' ) IF INLIST( loField._Type, 'C', 'N', 'F', 'Q', 'V' )
@@ -19156,7 +19175,8 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
._MinorVer = .parseNullTerminatedValue( @tcDevInfo, 1758, 4 ) ._MinorVer = .parseNullTerminatedValue( @tcDevInfo, 1758, 4 )
._Revision = .parseNullTerminatedValue( @tcDevInfo, 1763, 4 ) ._Revision = .parseNullTerminatedValue( @tcDevInfo, 1763, 4 )
._LanguageID = .parseNullTerminatedValue( @tcDevInfo, 1768, 19 ) ._LanguageID = .parseNullTerminatedValue( @tcDevInfo, 1768, 19 )
._AutoIncrement = IIF( SUBSTR( tcDevInfo, 1788, 1 ) = CHR(1), '1', '0' ) *._AutoIncrement = IIF( SUBSTR( tcDevInfo, 1788, 1 ) = CHR(1), '1', '0' )
._AutoIncrement = TRANSFORM(ASC(SUBSTR(tcDevInfo, 1788, 1))) && Proposed by Doug Hennig
ENDWITH && THIS ENDWITH && THIS
CATCH TO loEx CATCH TO loEx