From f8a98ebc38e651af64b3eec87f48108fe2e18506 Mon Sep 17 00:00:00 2001 From: fernando Date: Fri, 6 Dec 2013 17:26:02 +0100 Subject: [PATCH] =?UTF-8?q?Changeset:=2039=20Changeset:=2039=20Arreglo=20d?= =?UTF-8?q?e=20espacios=20en=20las=20props=20de=20algunos=20memos=20(reser?= =?UTF-8?q?ved3,=20protected)=20y=20en=20evaluaci=C3=B3n=20de=20ALINES()?= =?UTF-8?q?=20cuando=20no=20hay=20valores?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TESTS/ut__foxbin2prg.prg | 72 ++++++++++++++++++++++++++-------------- foxbin2prg.prg | 21 +++++++----- 2 files changed, 59 insertions(+), 34 deletions(-) diff --git a/TESTS/ut__foxbin2prg.prg b/TESTS/ut__foxbin2prg.prg index 29532e8..cf7c213 100644 --- a/TESTS/ut__foxbin2prg.prg +++ b/TESTS/ut__foxbin2prg.prg @@ -133,7 +133,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg LOCAL laPropsAndValues(1,2), lnPropsAndValues_Count, laPropsAndValues_Esperado(1,2), lnPropsAndValues_Count_Esperado ; , lnPropsAndComments_Count, lnPropsAndComments_Count_Esperado, laPropsAndComments(1,2), laPropsAndComments_Esperado(1,2) ; , laProtected(1), lnProtected_Count, laProtected_Esperado(1), lnProtected_Count_Esperado ; - , laMethods(1,2), lnMethods_Count, laMethods_Esperado(1,2), lnMethods_Count_Esperado + , laMethods(1,2), lnMethods_Count, laMethods_Esperado(1,2), lnMethods_Count_Esperado, lcExtraData LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG" *-- Algunos ajustes para mejor visualización de caracteres especiales @@ -156,79 +156,101 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg loObj.get_ADD_OBJECT_METHODS( toReg, toReg, '', @laMethods, '', @lnMethods_Count ) loObj.get_ADD_OBJECT_METHODS( toReg_Esperado, toReg_Esperado, '', @laMethods_Esperado, '', @lnMethods_Count_Esperado ) + lcExtraData = tcParent + '.' + tcObjName + ' (' + tcClass + ')' *-- Visualización de valores THIS.messageout( LOWER(PROGRAM(PROGRAM(-1)-1)) ) THIS.messageout( '' ) - THIS.messageout( 'PROPERTIES esperadas para ' + tcParent + '.' + tcObjName + ' (' + tcClass + ')' + ': ' + TRANSFORM(lnPropsAndValues_Count_Esperado) ) + THIS.messageout( 'PROPERTIES esperadas para ' + lcExtraData + ': ' ; + + TRANSFORM(lnPropsAndValues_Count_Esperado) + ' (Tamaño = ' + TRANSFORM(LEN(toReg_Esperado.PROPERTIES)) + ' bytes)' ) *THIS.messageout( REPLICATE('-',80) ) *FOR I = 1 TO lnPropsAndValues_Count_Esperado * THIS.messageout( 'PropName = ' + TRANSFORM(laPropsAndValues_Esperado(I,1)) ) *ENDFOR THIS.messageout( '' ) - THIS.messageout( 'PROTECTED esperadas para ' + tcParent + '.' + tcObjName + ' (' + tcClass + ')' + ': ' + TRANSFORM(lnProtected_Count_Esperado) ) + THIS.messageout( 'PROTECTED esperadas para ' + lcExtraData + ': ' ; + + TRANSFORM(lnProtected_Count_Esperado) + ' (Tamaño = ' + TRANSFORM(LEN(toReg_Esperado.PROTECTED)) + ' bytes)' ) *THIS.messageout( REPLICATE('-',80) ) *FOR I = 1 TO lnProtected_Count_Esperado * THIS.messageout( 'PropName = ' + TRANSFORM(laProtected_Esperado(I,1)) ) *ENDFOR THIS.messageout( '' ) - THIS.messageout( 'RESERVED3 esperadas para ' + tcParent + '.' + tcObjName + ' (' + tcClass + ')' + ': ' + TRANSFORM(lnPropsAndComments_Count_Esperado) ) + THIS.messageout( 'RESERVED3 esperadas para ' + lcExtraData + ': ' ; + + TRANSFORM(lnPropsAndComments_Count_Esperado) + ' (Tamaño = ' + TRANSFORM(LEN(toReg_Esperado.RESERVED3)) + ' bytes)' ) *THIS.messageout( REPLICATE('-',80) ) *FOR I = 1 TO lnPropsAndComments_Count_Esperado * THIS.messageout( 'PropName = ' + TRANSFORM(laPropsAndComments_Esperado(I,1)) ) *ENDFOR THIS.messageout( '' ) - THIS.messageout( 'METHODS esperadas para ' + tcParent + '.' + tcObjName + ' (' + tcClass + ')' + ': ' + TRANSFORM(lnMethods_Count_Esperado) ) + THIS.messageout( 'METHODS esperadas para ' + lcExtraData + ': ' ; + + TRANSFORM(lnMethods_Count_Esperado) + ' (Tamaño = ' + TRANSFORM(LEN(toReg_Esperado.METHODS)) + ' bytes)' ) *THIS.messageout( REPLICATE('-',80) ) *FOR I = 1 TO lnMethods_Count_Esperado * THIS.messageout( 'Name = ' + TRANSFORM(laMethods_Esperado(I,1)) ) *ENDFOR THIS.messageout( '' ) - THIS.messageout( 'OLE2 esperado para ' + tcParent + '.' + tcObjName + ' (' + tcClass + ')' + ': ' + TRANSFORM(toReg_Esperado.OLE2) ) + THIS.messageout( 'OLE2 esperado para ' + lcExtraData + ': ' + TRANSFORM(toReg_Esperado.OLE2) ) THIS.messageout( '' ) - THIS.messageout( 'Checksum OLE esperado para ' + tcParent + '.' + tcObjName + ' (' + tcClass + ')' + ': ' + TRANSFORM(SYS(2007, toReg_Esperado.OLE)) ) + THIS.messageout( 'Checksum OLE esperado para ' + lcExtraData + ': ' + TRANSFORM(SYS(2007, toReg_Esperado.OLE)) ) *-- Evaluación de valores - THIS.assertequals( toReg_Esperado.Reserved1, toReg.Reserved1, "Valor de Reserved1" ) - THIS.assertequals( toReg_Esperado.Reserved2, toReg.Reserved2, "Valor de Reserved2" ) - THIS.assertequals( toReg_Esperado.Reserved4, toReg.Reserved4, "Valor de Reserved4" ) - THIS.assertequals( toReg_Esperado.Reserved5, toReg.Reserved5, "Valor de Reserved5" ) - THIS.assertequals( toReg_Esperado.Reserved6, toReg.Reserved6, "Valor de Reserved6" ) - THIS.assertequals( toReg_Esperado.Reserved7, toReg.Reserved7, "Valor de Reserved7" ) - THIS.assertequals( toReg_Esperado.Reserved8, toReg.Reserved8, "Valor de Reserved8" ) - THIS.assertequals( toReg_Esperado.OLE2, toReg.OLE2, "Valor de OLE2" ) - THIS.assertequals( SYS(2007, toReg_Esperado.OLE), SYS(2007, toReg.OLE), "Valor de OLE (Checksum)" ) + THIS.assertequals( toReg_Esperado.Reserved1, toReg.Reserved1, "Valor de RESERVED1 para " + lcExtraData ) + THIS.assertequals( LEN(toReg_Esperado.Reserved1), LEN(toReg.Reserved1), "Tamaño de RESERVED1 para " + lcExtraData ) + THIS.assertequals( toReg_Esperado.Reserved2, toReg.Reserved2, "Valor de RESERVED2 para " + lcExtraData ) + THIS.assertequals( LEN(toReg_Esperado.Reserved2), LEN(toReg.Reserved2), "Tamaño de RESERVED2 para " + lcExtraData ) + THIS.assertequals( toReg_Esperado.Reserved4, toReg.Reserved4, "Valor de RESERVED4 para " + lcExtraData ) + THIS.assertequals( LEN(toReg_Esperado.Reserved4), LEN(toReg.Reserved4), "Tamaño de RESERVED4 para " + lcExtraData ) + THIS.assertequals( toReg_Esperado.Reserved5, toReg.Reserved5, "Valor de RESERVED5 para " + lcExtraData ) + THIS.assertequals( LEN(toReg_Esperado.Reserved5), LEN(toReg.Reserved5), "Tamaño de RESERVED5 para " + lcExtraData ) + THIS.assertequals( toReg_Esperado.Reserved6, toReg.Reserved6, "Valor de RESERVED6 para " + lcExtraData ) + THIS.assertequals( LEN(toReg_Esperado.Reserved6), LEN(toReg.Reserved6), "Tamaño de RESERVED6 para " + lcExtraData ) + THIS.assertequals( toReg_Esperado.Reserved7, toReg.Reserved7, "Valor de RESERVED7 para " + lcExtraData ) + THIS.assertequals( LEN(toReg_Esperado.Reserved7), LEN(toReg.Reserved7), "Tamaño de RESERVED7 para " + lcExtraData ) + THIS.assertequals( toReg_Esperado.Reserved8, toReg.Reserved8, "Valor de RESERVED8 para " + lcExtraData ) + THIS.assertequals( LEN(toReg_Esperado.Reserved8), LEN(toReg.Reserved8), "Tamaño de RESERVED8 para " + lcExtraData ) + THIS.assertequals( toReg_Esperado.OLE2, toReg.OLE2, "Valor de OLE2 para " + lcExtraData ) + THIS.assertequals( LEN(toReg_Esperado.OLE2), LEN(toReg.OLE2), "Tamaño de OLE2 para " + lcExtraData ) + THIS.assertequals( SYS(2007, toReg_Esperado.OLE), SYS(2007, toReg.OLE), "Valor de OLE (Checksum) para " + lcExtraData ) + THIS.assertequals( LEN(toReg_Esperado.OLE), LEN(toReg.OLE), "Tamaño de OLE para " + lcExtraData ) *-- PROPERTIES - THIS.assertequals( lnPropsAndValues_Count_Esperado, lnPropsAndValues_Count, "Cantidad de PROPERTIES" ) + THIS.assertequals( LEN(toReg_Esperado.PROPERTIES), LEN(toReg.PROPERTIES), "Tamaño de PROPERTIES para " + lcExtraData ) + THIS.assertequals( lnPropsAndValues_Count_Esperado, lnPropsAndValues_Count, "Cantidad de PROPERTIES para " + lcExtraData ) FOR I = 1 TO lnPropsAndValues_Count_Esperado - THIS.asserttrue( ASCAN( laPropsAndValues, laPropsAndValues_Esperado(I,1), 1, -1, 1, 0+2+4) > 0, ' Comprobación de que existe la Property "' + TRANSFORM(laPropsAndValues_Esperado(I,1)) + '"' ) + THIS.asserttrue( ASCAN( laPropsAndValues, laPropsAndValues_Esperado(I,1), 1, -1, 1, 0+2+4) > 0 ; + , ' Comprobación de que existe la Property "' + TRANSFORM(laPropsAndValues_Esperado(I,1)) + '"' + " para " + lcExtraData ) ENDFOR *-- RESERVED3 - THIS.assertequals( lnPropsAndComments_Count_Esperado, lnPropsAndComments_Count, "Cantidad de RESERVED3" ) + THIS.assertequals( LEN(toReg_Esperado.RESERVED3), LEN(toReg.RESERVED3), "Tamaño de RESERVED3 para " + lcExtraData ) + THIS.assertequals( lnPropsAndComments_Count_Esperado, lnPropsAndComments_Count, "Cantidad de RESERVED3 para " + lcExtraData ) FOR I = 1 TO lnPropsAndComments_Count_Esperado - THIS.asserttrue( ASCAN( laPropsAndComments, laPropsAndComments_Esperado(I,1), 1, -1, 1, 0+2+4) > 0, ' Comprobación de que existe la Reserved3 "' + TRANSFORM(laPropsAndComments_Esperado(I,1)) + '"' ) + THIS.asserttrue( ASCAN( laPropsAndComments, laPropsAndComments_Esperado(I,1), 1, -1, 1, 0+2+4) > 0 ; + , ' Comprobación de que existe la Reserved3 "' + TRANSFORM(laPropsAndComments_Esperado(I,1)) + '"' + " para " + lcExtraData ) ENDFOR *-- PROTECTED - THIS.assertequals( lnProtected_Count_Esperado, lnProtected_Count, "Cantidad de PROTECTED" ) + THIS.assertequals( LEN(toReg_Esperado.PROTECTED), LEN(toReg.PROTECTED), "Tamaño de PROTECTED para " + lcExtraData ) + THIS.assertequals( lnProtected_Count_Esperado, lnProtected_Count, "Cantidad de PROTECTED para " + lcExtraData ) FOR I = 1 TO lnProtected_Count_Esperado - THIS.asserttrue( ASCAN( laProtected, laProtected_Esperado(I,1), 1, -1, 1, 0+2+4) > 0, ' Comprobación de que existe la Protected "' + TRANSFORM(laProtected_Esperado(I,1)) + '"' ) + THIS.asserttrue( ASCAN( laProtected, laProtected_Esperado(I,1), 1, -1, 1, 0+2+4) > 0 ; + , ' Comprobación de que existe la Protected "' + TRANSFORM(laProtected_Esperado(I,1)) + '"' + " para " + lcExtraData ) ENDFOR *-- METHODS - THIS.assertequals( lnMethods_Count_Esperado, lnMethods_Count, "Cantidad de METHODS" ) + THIS.assertequals( LEN(toReg_Esperado.METHODS), LEN(toReg.METHODS), "Tamaño de METHODS para " + lcExtraData ) + THIS.assertequals( lnMethods_Count_Esperado, lnMethods_Count, "Cantidad de METHODS para " + lcExtraData ) FOR I = 1 TO lnMethods_Count_Esperado - THIS.asserttrue( ASCAN( laMethods, laMethods_Esperado(I,1), 1, -1, 1, 0+2+4) > 0, ' Comprobación de que existe el Method "' + TRANSFORM(laMethods_Esperado(I,1)) + '"' ) + THIS.asserttrue( ASCAN( laMethods, laMethods_Esperado(I,1), 1, -1, 1, 0+2+4) > 0 ; + , ' Comprobación de que existe el Method "' + TRANSFORM(laMethods_Esperado(I,1)) + '"' + " para " + lcExtraData ) ENDFOR ELSE @@ -322,7 +344,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg *-- DATOS DE ENTRADA STORE 0 TO lnCodError - lc_File = 'fb2p_test.vcx' + lc_File = 'THCALC.VCX' &&'fb2p_test.vcx' lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 781a89a..ec2a023 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -2670,7 +2670,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base #ENDIF TRY - LOCAL llBloqueEncontrado, lcDefinedPAM, lnPos, lnPos2 + LOCAL llBloqueEncontrado, lcDefinedPAM, lnPos, lnPos2, lcPAM_Name IF LEFT( tcLine, C_LEN_DEFINED_PAM_I) == C_DEFINED_PAM_I llBloqueEncontrado = .T. @@ -2691,13 +2691,15 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base IF lnPos2 > 0 *-- Con comentarios + lcPAM_Name = RTRIM( SUBSTR( tcLine, lnPos+1, lnPos2 - lnPos - 1 ), 0, ' ', CHR(9) ) lcDefinedPAM = lcDefinedPAM ; - + RTRIM( SUBSTR( tcLine, lnPos+1, lnPos2 - lnPos - 1 ), 0, ' ', CHR(9) ) + ' ' + SUBSTR( tcLine, lnPos2 + 3 ) ; + + lcPAM_Name + ' ' + SUBSTR( tcLine, lnPos2 + 3 ) ; + CR_LF ELSE *-- Sin comentarios + lcPAM_Name = RTRIM( SUBSTR( tcLine, lnPos+1 ), 0, ' ', CHR(9) ) lcDefinedPAM = lcDefinedPAM ; - + RTRIM( SUBSTR( tcLine, lnPos+1 ), 0, ' ', CHR(9) ) + ' ' ; + + lcPAM_Name + IIF(ISALPHA(lcPAM_Name), '', ' ') ; + CR_LF ENDIF ENDCASE @@ -5689,14 +5691,15 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base TRY LOCAL laLines(1), I, lnPos, loEx AS EXCEPTION tcSortedMemo = '' - tnPropsAndComments_Count = ALINES(laLines, tcMemo) - DIMENSION taPropsAndComments(tnPropsAndComments_Count,2) + tnPropsAndComments_Count = ALINES(laLines, tcMemo, 1+4) - IF tnPropsAndComments_Count = 1 AND EMPTY(taPropsAndComments) + IF tnPropsAndComments_Count <= 1 AND EMPTY(laLines) tnPropsAndComments_Count = 0 EXIT ENDIF + DIMENSION taPropsAndComments(tnPropsAndComments_Count,2) + FOR I = 1 TO tnPropsAndComments_Count lnPos = AT(' ', laLines(I)) && Un espacio separa la propiedad de su comentario (si tiene) @@ -5753,7 +5756,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base lnItemCount = ALINES(laItems, m.tcMemo, 0, CR_LF) && Específicamente CR+LF para que no reconozca los CR o LF por separado X = 0 - IF lnItemCount = 1 AND EMPTY(laItems) + IF lnItemCount <= 1 AND EMPTY(laItems) lnItemCount = 0 EXIT ENDIF @@ -5861,9 +5864,9 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base EXTERNAL ARRAY taProtected tcSortedMemo = '' - tnProtected_Count = ALINES(taProtected, tcMemo) + tnProtected_Count = ALINES(taProtected, tcMemo, 1+4) - IF tnProtected_Count = 1 AND EMPTY(taProtected) + IF tnProtected_Count <= 1 AND EMPTY(taProtected) tnProtected_Count = 0 ELSE IF tlSort