From e31e285f30e660886b310e6329330f79610c917f Mon Sep 17 00:00:00 2001 From: fernando Date: Mon, 9 Dec 2013 19:38:34 +0100 Subject: [PATCH] =?UTF-8?q?Changeset:=2066=20Changeset:=2066=20-=20Agregad?= =?UTF-8?q?o=20soporte=20inicial=20DBC=20-=20Refactorizaci=C3=B3n=20rutina?= =?UTF-8?q?=20de=20backup=20doBackup(),=20agregado=20soporte=20m=C3=A1s=20?= =?UTF-8?q?archivos=20y=20cambiada=20la=20COPIA=20por=20RENAME=20-=20Quita?= =?UTF-8?q?do=20el=20campo=20TAG2=20del=20dataenvironment=20de=20los=20rep?= =?UTF-8?q?ortes=20en=20la=20TEXTualizaci=C3=B3n,=20ya=20que=20es=20un=20F?= =?UTF-8?q?XP=20del=20TAG=20y=20se=20regenera=20con=20COMPILE=20REPORT=20(?= =?UTF-8?q?por=20eso=20daba=20diferencias!)=20-=20Nuevo=20m=C3=A9todo=20pa?= =?UTF-8?q?rseNullTerminatedValue()=20para=20sustituir=20y=20mejorar=20el?= =?UTF-8?q?=20tratamiento=20manual=20de=20los=20campos=20de=20los=20PJX?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TESTS/DATOS_READONLY/fb2p_dbc.dbc | Bin 0 -> 6658 bytes TESTS/DATOS_READONLY/fb2p_dbc.dct | Bin 0 -> 2432 bytes TESTS/DATOS_READONLY/fb2p_dbc.dcx | Bin 0 -> 4608 bytes TESTS/DATOS_READONLY/fb2p_dbf.cdx | Bin 0 -> 4608 bytes TESTS/DATOS_READONLY/fb2p_dbf.dbf | Bin 0 -> 392 bytes TESTS/DATOS_READONLY/fb2p_test.vct | Bin 9303 -> 10223 bytes TESTS/DATOS_READONLY/fb2p_test.vcx | Bin 2667 -> 2885 bytes ...foxbin2prg__c_conversor_base__doBackup.prg | 121 ++++++++++++ foxbin2prg.prg | 172 +++++++++++------- 9 files changed, 232 insertions(+), 61 deletions(-) create mode 100644 TESTS/DATOS_READONLY/fb2p_dbc.dbc create mode 100644 TESTS/DATOS_READONLY/fb2p_dbc.dct create mode 100644 TESTS/DATOS_READONLY/fb2p_dbc.dcx create mode 100644 TESTS/DATOS_READONLY/fb2p_dbf.cdx create mode 100644 TESTS/DATOS_READONLY/fb2p_dbf.dbf create mode 100644 TESTS/foxbin2prg__c_conversor_base__doBackup.prg diff --git a/TESTS/DATOS_READONLY/fb2p_dbc.dbc b/TESTS/DATOS_READONLY/fb2p_dbc.dbc new file mode 100644 index 0000000000000000000000000000000000000000..397b87f45ee7914008c50213f2dc81820f0c4eef GIT binary patch literal 6658 zcmd_uNpI6Y6bJC3ETz!0uVovSN~kBqHz%%P{s%d`p#cIBiJN4^6G4xBjf zJ$Zl6SeeO096clPDsMBk{Oj|3PLy{$+gp2#v9}w4Xl=&kMaH5JAA>;}4rwO5K&wmi zr$>B{1Y2sFXzVxBbvWU$KO}x<0OiMBt4?x(GOa!-hU7c z19i#h=bHH>49AC2d&b}wZLX-3yUpiGkf{C9Z`v{cJH~dp6aVuq$HT`m%obUm%?0Pn zJ?Z%pwWKlPwjGMX;<#{9Kllr_V zD8qfl8YKF_%;YLE%D;$W(HD{PHAuX0{*4@pGf|bIDyCxI2h~RI$CD zT_+JjLn66AhE#Un+Hu#J+=h@sLn66mO`hcM&yM>qMQNgS_c^N}kz7FismU9pL1;)M z*F?Im$(t?FKq9$7`csp)Y$TFv)}-tA^BDsM2 zQE`-PnA-8nIpM=HO?~|2{)krG|qDy z3Ac%K-8e67B-|#_!^VLd$YtZWMsm_1mW|VPykCv;QW|w6hBz($G|npHde+AJ}6Uk0=0`0;wYa literal 0 HcmV?d00001 diff --git a/TESTS/DATOS_READONLY/fb2p_dbc.dcx b/TESTS/DATOS_READONLY/fb2p_dbc.dcx new file mode 100644 index 0000000000000000000000000000000000000000..5db0c26ec504dad08aacb238d62838c8ad9d15c1 GIT binary patch literal 4608 zcmeHIy-ve05WX}iL;ZLl!3F#HOT5iZ@>dE zu=6rJ00QwG#Z5y40}>Kjnv-nZ*(Y1yclLLnz{E6ol_o*vq?!QM@4Tk`QLQzpk-p6$>eI%_nows43o9Ej6N>_IVshBEz6$Vj literal 0 HcmV?d00001 diff --git a/TESTS/DATOS_READONLY/fb2p_dbf.cdx b/TESTS/DATOS_READONLY/fb2p_dbf.cdx new file mode 100644 index 0000000000000000000000000000000000000000..65f433f9acc079119416e6dc837d485ca0ac5b07 GIT binary patch literal 4608 zcmZQzVSocJh6jvr&M0G8hX5l3D5^)Jdss&@5uRgaU}E?W1veT0|7T#}=NDjMVP;@! zVBk?C!hlgFLoo#6{rr8Mf?Pda7`PD5XJJSgEf5gFF|1k4;If~YAv0xIdvnxt1VVrr zC=Vy9ezF?^$~F)fL8wVGcefO^RTgvmjA>B-;h@Y05&=+fdBvi literal 0 HcmV?d00001 diff --git a/TESTS/DATOS_READONLY/fb2p_dbf.dbf b/TESTS/DATOS_READONLY/fb2p_dbf.dbf new file mode 100644 index 0000000000000000000000000000000000000000..101ebdcc7b93d41f312cc7560128f24c243dba24 GIT binary patch literal 392 zcmXry<>6!if(}MC5QPF5nHd=T{C%B*T*1Q5j6g~bMFj(ctBa!xRLD;r$N*|V0iG~f i1_nhvCu=BtiMRRwI(WhsMF0ftnOygO;!-Z zAXEe|Qs$)o6(xtBJb3iv!Gq@>J(Nn1Mz+4$G`|ET;IPB|dVJq^-)DBe-8j@w6Ebs1 z2vK%Nj+7l3tOo-xqvBP3%B>xNwr$=GEv93PwN-fZdx(%#WA1W=jG2V~zF ziPnBxk?U#fdvbzpAICu)znrY)-mf4Dk~|@=l@M9>E|Nx+%)?UtI%KpgEPu}F86B4O zyEilXg7=6t9^k3pv`UqM{k_Ty99RX))S=+8vcn6mVLITJYOvuJ6Hw+3FbfQK-;(1` zt7_UDR@d~jmdUSaP+%Af`qC{er+fEE<8~_n9#|9%i&hxWQk6L-D&c&~Wd)gPlR2zp zm{jI3Ne#Zi9&ENNV8NmC1Kvtsjv^nfl)er;MWVQ}B(NzI;8YfMO3j0=SE|A_7<7?Sm$st9}wz= zXia(FsdKMhB%IUk=OW?1p_V88Vg3i@T5mzynA_t2i?~C$E!j=C=HIvux=t}LaesK* zx;<$7BsOfL^_Ft5tM|saq=%XJGw$`28%G+_0iWCr(()jGm;D$%}Y^q HxLf`WlLuK! delta 702 zcmaFwf8B$Ffk7plfq{W>qu?jTi3*&XnVA|TCbKAMPBxPkpZrG3Yw`>!5fGcvWwM{N zp>SzlVtheSenEU{aY1TwW?~L6*W`&((v#OKhEDcYOqpz_;J=w$)|h#6pTZs{=A)Bq zSX3v^QxllHM_QsDL$89Z0weuEJ^if0YST!!-xF)7zyuY*z}U>SxFl5}wV1awPoXR^ aC%=dnp3rhjb4oIE-sYtyZoVXK%m@Hv7C)*0 diff --git a/TESTS/DATOS_READONLY/fb2p_test.vcx b/TESTS/DATOS_READONLY/fb2p_test.vcx index 0e72e7f79d44fb29b3129c8bf46f1a57ba95a228..f7b847c67ca9a75dd9360dfc07c7fcfb708f98e4 100644 GIT binary patch delta 314 zcmaDYa#W1ffR~3|a3gC3>*V>I9I{4cmX=0lh7+Y2z@QdL>q|q}_0p3WnZ=|efm}5p zc7qCoB%cD6eU_Ts!)DBN4ytph6i~I*W`9<0Mx_;s5EER0bh`qC4I*uTYCVD2Tw!w! zn<^t;mmEZnRhEGvQ+%=_tIg)u?8_MIwZc99T>Qg>72=H}4Ghg49sLXq4ULU}4mC2j zh*g4Ux~q_F9D1fR~4Zetu7bzeq0ES&`Lt^D&O4jFbIY#bk{Q3{6ZdE!d$()d6W~D7#BxG9$B?' + #DEFINE C_FB2P_VALUE_F '' + #DEFINE CR_LF CHR(13) + CHR(10) + #DEFINE C_CR CHR(13) + #DEFINE C_LF CHR(10) + #DEFINE C_TAB CHR(9) + #DEFINE C_PROC 'PROCEDURE' + #DEFINE C_ENDPROC 'ENDPROC' + #DEFINE C_TEXT 'TEXT' + #DEFINE C_ENDTEXT 'ENDTEXT' + #DEFINE C_IF_F '#IF .F.' + #DEFINE C_ENDIF '#ENDIF' + #DEFINE C_DEFINE_CLASS 'DEFINE CLASS' + #DEFINE C_ENDDEFINE_CLASS 'ENDDEFINE' + 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' + oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG') + oFXU_LIB.setup_comun() + + THIS.icObj = NEWOBJECT("c_conversor_bin_a_prg", "FOXBIN2PRG.PRG") + loObj = THIS.icObj + loObj.l_Test = .T. + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION TearDown + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + THIS.icObj = NULL + + IF VARTYPE(oFXU_LIB) = "O" + oFXU_LIB.teardown_comun() + oFXU_LIB = NULL + ENDIF + RELEASE PROCEDURE 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Evaluate_results + LPARAMETERS toEx AS EXCEPTION, tnCodError_Esperado, tcMemo, tcMemo_Salida, tcMemo_Esperado + + #IF .F. + PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' + #ENDIF + LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG" + loObj = THIS.icObj + + IF PCOUNT() = 0 + THIS.messageout( "* Support method, not a valid test." ) + RETURN .T. + ENDIF + + IF ISNULL(toEx) + *-- Algunos ajustes para mejor visualización de caracteres especiales + tcMemo = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcMemo ) + tcMemo_Esperado = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcMemo_Esperado ) + tcMemo_Salida = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcMemo_Salida ) + + *-- Visualización de valores + THIS.messageout( ' Memo de entrada:' ) + THIS.messageout( '[' + tcMemo + ']' ) + + THIS.messageout( REPLICATE('-',80) ) + + THIS.messageout( ' Memo esperado:' ) + THIS.messageout( '[' + tcMemo_Esperado + ']' ) + + + *-- Evaluación de valores + THIS.assertequals( '[' + tcMemo_Esperado + ']', '[' + tcMemo_Salida + ']', "Contenido del Memo de PROCEDURE" ) + + ELSE + *-- Evaluación de errores + THIS.messageout( "Error " + TRANSFORM(toEx.ERRORNO) + ', ' + TRANSFORM(toEx.MESSAGE) ) + THIS.messageout( toEx.PROCEDURE + ', ' + TRANSFORM(toEx.LINENO) ) + THIS.messageout( TRANSFORM(toEx.LINECONTENTS) ) + + THIS.assertequals( tnCodError_Esperado, toEx.ERRORNO, 'Error' ) + ENDIF + ENDFUNC + + + ******************************************************************************************************************************************* + FUNCTION Deberia_HacerElBackupDelArchivoIndicado + LOCAL lnCodError, lcMenError, lnCodError_Esperado ; + , lcMemo, lcMemo_Salida, lcMemo_Esperado ; + , loEx AS EXCEPTION + LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG" + loObj = THIS.icObj + loEx = NULL + + *-- DATOS DE ENTRADA + STORE 0 TO lnCodError + *loObj + + *-- TEST + loObj.doBackup() + + THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcMemo, @lcMemo_Salida, @lcMemo_Esperado ) + + ENDFUNC + + +ENDDEFINE diff --git a/foxbin2prg.prg b/foxbin2prg.prg index abc9ea5..89de871 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -466,6 +466,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, THIS.c_DB2 ) THIS.o_Conversor = CREATEOBJECT( 'c_conversor_dbf_a_prg' ) + CASE JUSTEXT(THIS.c_InputFile) = 'DBC' + THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, THIS.c_DC2 ) + THIS.o_Conversor = CREATEOBJECT( 'c_conversor_dbc_a_prg' ) + CASE JUSTEXT(THIS.c_InputFile) = THIS.c_VC2 THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, 'VCX' ) THIS.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_vcx' ) @@ -490,6 +494,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, 'DBF' ) THIS.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dfb' ) + CASE JUSTEXT(THIS.c_InputFile) = THIS.c_DC2 + THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, 'DBC' ) + THIS.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dfc' ) + OTHERWISE ERROR 'El archivo [' + THIS.c_InputFile + '] no está soportado' @@ -972,46 +980,72 @@ DEFINE CLASS c_conversor_base AS SESSION ******************************************************************************************************************* PROCEDURE doBackup - LOCAL lcNext_Bak, lcExt_X, lcExt_T - lcNext_Bak = THIS.getNext_BAK( THIS.c_OutputFile ) - lcExt_X = JUSTEXT( THIS.c_OutputFile ) - lcExt_T = LEFT(lcExt_X,2) + 'T' + LPARAMETERS toEx, tlRelanzarError, tcBakFile_1, tcBakFile_2, tcBakFile_3 + + TRY + LOCAL lcNext_Bak, lcExt_1, lcExt_2, lcExt_3 + STORE '' TO tcBakFile_1, tcBakFile_2, tcBakFile_3 + lcNext_Bak = THIS.getNext_BAK( THIS.c_OutputFile ) + lcExt_1 = JUSTEXT( THIS.c_OutputFile ) + tcBakFile_1 = FORCEEXT(THIS.c_OutputFile, lcExt_1 + lcNext_Bak) - DO CASE - CASE JUSTEXT( THIS.c_OutputFile ) = lcExt_X - *-- VCX, SCX, FRX, LBX, MNX - IF FILE( FORCEEXT(THIS.c_OutputFile,lcExt_X) ) - THIS.writeLog( 'backup de: ' + FORCEEXT(THIS.c_OutputFile,lcExt_X) + '/' + lcExt_T ) + DO CASE + CASE lcExt_1 = 'DBF' + *-- DBF + lcExt_2 = 'FPT' + lcExt_3 = 'CDX' + tcBakFile_2 = FORCEEXT(THIS.c_OutputFile, lcExt_2 + lcNext_Bak) + tcBakFile_3 = FORCEEXT(THIS.c_OutputFile, lcExt_3 + lcNext_Bak) - COPY FILE (FORCEEXT(THIS.c_OutputFile,lcExt_X)) TO (FORCEEXT(THIS.c_OutputFile, lcExt_X + lcNext_Bak)) + CASE lcExt_1 = 'DBC' + *-- DBC + lcExt_2 = 'DCT' + lcExt_3 = 'DCX' + tcBakFile_2 = FORCEEXT(THIS.c_OutputFile, lcExt_2 + lcNext_Bak) + tcBakFile_3 = FORCEEXT(THIS.c_OutputFile, lcExt_3 + lcNext_Bak) - IF FILE( FORCEEXT(THIS.c_OutputFile,lcExt_T) ) - COPY FILE (FORCEEXT(THIS.c_OutputFile,lcExt_T)) TO (FORCEEXT(THIS.c_OutputFile,lcExt_T + lcNext_Bak)) + OTHERWISE + *-- PJX, VCX, SCX, FRX, LBX, MNX + lcExt_2 = LEFT(lcExt_1,2) + 'T' + tcBakFile_2 = FORCEEXT(THIS.c_OutputFile, lcExt_2 + lcNext_Bak) + + ENDCASE + + IF NOT EMPTY(lcExt_1) AND FILE( FORCEEXT(THIS.c_OutputFile, lcExt_1) ) + IF EMPTY(lcExt_3) + THIS.writeLog( 'backup de: ' + FORCEEXT(THIS.c_OutputFile,lcExt_1) + '/' + lcExt_2 ) + ELSE + THIS.writeLog( 'backup de: ' + FORCEEXT(THIS.c_OutputFile,lcExt_1) + '/' + lcExt_2 + '/' + lcExt_3 ) + ENDIF + + *COPY FILE ( FORCEEXT(THIS.c_OutputFile, lcExt_1) ) TO ( FORCEEXT(THIS.c_OutputFile, lcExt_1 + lcNext_Bak) ) + RENAME ( FORCEEXT(THIS.c_OutputFile, lcExt_1) ) TO ( tcBakFile_1 ) + + IF NOT EMPTY(lcExt_2) AND FILE( FORCEEXT(THIS.c_OutputFile, lcExt_2) ) + *COPY FILE ( FORCEEXT(THIS.c_OutputFile, lcExt_2) ) TO ( FORCEEXT(THIS.c_OutputFile, lcExt_2 + lcNext_Bak) ) + RENAME ( FORCEEXT(THIS.c_OutputFile, lcExt_2) ) TO ( tcBakFile_2 ) + ENDIF + + IF NOT EMPTY(lcExt_3) AND FILE( FORCEEXT(THIS.c_OutputFile, lcExt_3) ) + *COPY FILE ( FORCEEXT(THIS.c_OutputFile, lcExt_3) ) TO ( FORCEEXT(THIS.c_OutputFile, lcExt_3 + lcNext_Bak) ) + RENAME ( FORCEEXT(THIS.c_OutputFile, lcExt_3) ) TO ( tcBakFile_3 ) ENDIF ENDIF - CASE JUSTEXT( THIS.c_OutputFile ) = 'DBF' - *-- DBF - lcExt_X = 'DBF' - lcExt_T = 'FPT' - IF FILE( FORCEEXT(THIS.c_OutputFile,lcExt_X) ) - THIS.writeLog( 'backup de: ' + FORCEEXT(THIS.c_OutputFile,lcExt_X) + '/' + lcExt_T ) - - COPY FILE (FORCEEXT(THIS.c_OutputFile,lcExt_X)) TO (FORCEEXT(THIS.c_OutputFile, lcExt_X + lcNext_Bak)) - - IF FILE( FORCEEXT(THIS.c_OutputFile,lcExt_T) ) - COPY FILE (FORCEEXT(THIS.c_OutputFile,lcExt_T)) TO (FORCEEXT(THIS.c_OutputFile,lcExt_T + lcNext_Bak)) - ENDIF - - IF FILE( FORCEEXT(THIS.c_OutputFile,'CDX') ) - COPY FILE (FORCEEXT(THIS.c_OutputFile,'CDX')) TO (FORCEEXT(THIS.c_OutputFile,'CDX' + lcNext_Bak)) - ENDIF + CATCH TO loEx + IF THIS.l_Debug AND _VFP.STARTMODE = 0 + SET STEP ON ENDIF - OTHERWISE - ERROR 'Tipo de archivo [' + JUSTFNAME(THIS.c_OutputFile) + '] no soportado para backup!' + IF tlRelanzarError + THROW + ENDIF - ENDCASE + FINALLY + FCLOSE(lnHandle) + ENDTRY + + RETURN ENDPROC @@ -4708,22 +4742,23 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin DO CASE CASE INLIST(lcFieldType, 'B') && Double - STORE CAST( luValor AS &lcFieldType. (lnFieldPrec) ) TO ('loReg.' + laProps(I)) + ADDPROPERTY( loReg, laProps(I), CAST( luValor AS &lcFieldType. (lnFieldPrec) ) ) CASE INLIST(lcFieldType, 'F', 'N', 'Y') && Float, Numeric, Currency - STORE CAST( luValor AS &lcFieldType. (lnFieldLen, lnFieldDec) ) TO ('loReg.' + laProps(I)) + ADDPROPERTY( loReg, laProps(I), CAST( luValor AS &lcFieldType. (lnFieldLen, lnFieldDec) ) ) - CASE INLIST(lcFieldType, 'W', 'G', 'M', 'Q', 'V') && Blob, General, Memo, Varbinary, Barchar - STORE CAST( luValor AS &lcFieldType. ) TO ('loReg.' + laProps(I)) + CASE INLIST(lcFieldType, 'W', 'G', 'M', 'Q', 'V', 'C') && Blob, General, Memo, Varbinary, Varchar, Character + ADDPROPERTY( loReg, laProps(I), luValor ) OTHERWISE && Demás tipos - STORE CAST( luValor AS &lcFieldType. (lnFieldLen) ) TO ('loReg.' + laProps(I)) + ADDPROPERTY( loReg, laProps(I), CAST( luValor AS &lcFieldType. (lnFieldLen) ) ) ENDCASE ENDFOR INSERT INTO TABLABIN FROM NAME loReg + loReg = NULL ENDFOR USE IN (SELECT("TABLABIN")) @@ -4842,7 +4877,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin *-- Recorro las fracciones del valor FOR I = I + 1 TO tnCodeLines - .set_Line( @tcLine, @taCodeLines, I ) + tcLine = taCodeLines(I) IF C_DATA_F $ tcLine && Fin del valor lcValue = lcValue + CR_LF + STREXTRACT( tcLine, '', C_DATA_F ) @@ -4965,7 +5000,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin CASE loReg.ObjType == "1" loReg.TAG = THIS.decode_SpecialCodes_1_31( loReg.TAG ) CASE loReg.ObjType == "25" - loReg.TAG = SUBSTR(loReg.TAG,3) + loReg.TAG = SUBSTR(loReg.TAG,3) && Quito el ENTER agregado antes OTHERWISE loReg.TAG = THIS.decode_SpecialCodes_1_31( loReg.TAG ) ENDCASE @@ -5669,9 +5704,9 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base *ENDTEXT *-- Sustituyo el TEXT/ENDTEXT aquí porque a veces quita espacios de la derecha, y eso es peligroso - lcMethods = lcMethods + CR_LF + C_TAB + laMethods(I,3) + 'PROCEDURE ' + laMethods(I,1) + lcMethods = lcMethods + CR_LF + C_TAB + laMethods(I,3) + C_PROCEDURE + ' ' + laMethods(I,1) lcMethods = lcMethods + CR_LF + THIS.IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) ) - lcMethods = lcMethods + CR_LF + C_TAB + 'ENDPROC' + lcMethods = lcMethods + CR_LF + C_TAB + C_ENDPROC lcMethods = lcMethods + CR_LF ENDFOR @@ -6114,7 +6149,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base supgroup="<>" supvalchng="<>" supexpr="<>" > ENDTEXT - * <>tag="<>" TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 <>>]]> <>>]]> @@ -6227,7 +6261,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base supgroup="<>" supvalchng="<>" supexpr="<>" <<>> ENDTEXT - * <>tag="<>" TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 <>>]]> <>>]]> @@ -6340,11 +6373,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base supgroup="<>" supvalchng="<>" supexpr="<>" <<>> ENDTEXT - * <>tag="<>" + * NOTA: En el DataEnvironment el TAG2 es el TAG compilado, que se recompila con COMPILE REPORT TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 <>>]]> <>><>]]> - <>>]]> + <> <>>]]> <>