diff --git a/README.txt b/README.txt index 923990e..6314b83 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,6 @@ 26/01/2014 FOXBIN2PRG v1.19 FOR VISUAL FOXPRO 9 BINARIES Fernando D. Bozzo (fdbozzo@gmail.com) +Blog: http://fdbozzo.blogspot.com.es/ + ESPAÑOL -------------------------------------------------------------------------------------------- @@ -42,6 +44,7 @@ Es necesario recompilar el programa para que se actualicen los textos con el arc NOTA FINAL: Este programa es Open Source y "libre", y como tal no ofrezco garantías de que cumpla con sus espectativas o de que está libre de fallos, que intentaré solucionar si me reporta y mis obligaciones me lo permiten. +Project info and updated: https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg LICENCIA: @@ -92,6 +95,7 @@ Recompiling is necesary to update the strings from the include file. FINAL NOTE: This program is Open Source and "libre", and I don't make any garanties that it fulfills your espectations or that it will be free of bugs, that I will try to fix if my obligations let me do it. +Información del proyecto y actualizaciones: https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg_es LICENCE: diff --git a/foxbin2prg.cfg b/foxbin2prg.cfg index 9db8ddc..965b35b 100644 --- a/foxbin2prg.cfg +++ b/foxbin2prg.cfg @@ -7,12 +7,22 @@ * DETAIL OF SUPPORTED VALUES / DETALLE DE VALORES SOPORTADOS * If no values given, this are the defaults / Si no se proporcionan valores, estos son los predeterminados * -* extension: xx2 && Default FoxBin2Prg extensions ends in '2' / Las extensiones por defecto de FoxBin2Prg terminan en '2' -* DontShowProgress: 0 && Show progress bar by default in multi-file processing / Mostrar barra de progreso por defecto en procesamiento multi-archivo -* DontShowErrors: 1 && Show message errors by default / Mostrar mensajes de error por defecto -* NoTimestamps: 1 && Crear timespampt by default for minimize differences / Vaciar Timestamps por defecto para minimizar diferencias -* Debug: 1 && Activate individual .Log by default / Activar .Log por defecto -* ExtraBackupLevels: 0 && By default 1 BAK is created. With this you can make more .N.BAK / Por defecto 1 BAK es creado. Con esto puede crear más .N.BAK +* extension: xx2 && Default FoxBin2Prg extensions ends in '2' / Las extensiones por defecto de FoxBin2Prg terminan en '2' +* DontShowProgress: 0 && Show progress bar by default in multi-file processing / Mostrar barra de progreso por defecto en procesamiento multi-archivo +* DontShowErrors: 1 && Show message errors by default / Mostrar mensajes de error por defecto +* NoTimestamps: 1 && Crear timespampt by default for minimize differences / Vaciar Timestamps por defecto para minimizar diferencias +* Debug: 1 && Activate individual .Log by default / Activar .Log por defecto +* ExtraBackupLevels: 0 && By default 1 BAK is created. With this you can make more .N.BAK / Por defecto 1 BAK es creado. Con esto puede crear más .N.BAK +* XXX_Conversion_Support: N && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) +* PJX_Conversion_Support: 2 && Default value +* VCX_Conversion_Support: 2 && Default value +* SCX_Conversion_Support: 2 && Default value +* FRX_Conversion_Support: 2 && Default value +* LBX_Conversion_Support: 2 && Default value +* MNX_Conversion_Support: 2 && Default value +* DBC_Conversion_Support: 2 && Default value +* DBF_Conversion_Support: 1 && Default value >> EN: FoxBin2Prg support bi-directional convertion of DBFs, but does not keep data. Use with care. +* >> ES: FoxBin2Prg tiene soporte bi-direccional para convertir DBF, pero no mantiene los datos. Usar con cuidado. * * EN: Note: This values have precedence over internal parameters and parameters used on scripts * ES: Nota: Estos valores tienen precedencia sobre los parámetros internos y los parámetros usados en los scripts @@ -20,6 +30,7 @@ * END DOCUMENTATION SECTION / FIN DE LA SECCIÓN DE DOCUMENTACIÓN **************************************************************************************************** + * EN: Uncomment for SourceSafe compatibility. You can change the extension on the right side. * ES: Descomentar para compatibilidad con SourceSafe. Puede cambiar la extensión del lado derecho. *--------------------------------------------------------------------------------------------------- @@ -32,6 +43,7 @@ *extension: db2=dba *extension: dc2=dca + * EN: Uncomment to activate the new value, comment to deactivate and use the default * ES: Descomente para activar el nuevo valor, comente para desactivarlo y usar el predeterminado *--------------------------------------------------------------------------------------------------- @@ -40,3 +52,16 @@ *NoTimestamps: 1 *Debug: 1 *ExtraBackupLevels: 3 + + +* EN: Uncomment to activate the new value, comment to deactivate and use the default +* ES: Descomente para activar el nuevo valor, comente para desactivarlo y usar el predeterminado +*--------------------------------------------------------------------------------------------------- +*PJX_Conversion_Support: 2 +*VCX_Conversion_Support: 2 +*SCX_Conversion_Support: 2 +*FRX_Conversion_Support: 2 +*LBX_Conversion_Support: 2 +*MNX_Conversion_Support: 2 +*DBC_Conversion_Support: 2 +*DBF_Conversion_Support: 1 diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index d76e33b..64f78ae 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,7 +26,7 @@ _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" _MinorVer = "19" -_Revision = " 246" +_Revision = " 247" _LanguageID = "1034" _AutoIncrement = "1" * diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index 7553918..a98aefa 100644 Binary files a/foxbin2prg.pjt and b/foxbin2prg.pjt differ diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 593e994..7f82761 100644 Binary files a/foxbin2prg.pjx and b/foxbin2prg.pjx differ diff --git a/foxbin2prg.prg b/foxbin2prg.prg index f7778f5..6cda490 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -394,6 +394,14 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -434,6 +442,14 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM c_DB2 = 'DB2' && DBF c_DC2 = 'DC2' && DBC c_MN2 = 'MN2' && MNX + PJX_Conversion_Support = 2 + VCX_Conversion_Support = 2 + SCX_Conversion_Support = 2 + FRX_Conversion_Support = 2 + LBX_Conversion_Support = 2 + MNX_Conversion_Support = 2 + DBF_Conversion_Support = 1 + DBC_Conversion_Support = 2 PROCEDURE INIT @@ -683,6 +699,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM laConfig(I) = LOWER( laConfig(I) ) DO CASE + CASE LEFT( laConfig(I), 1 ) == '*' + LOOP + CASE LEFT( laConfig(I), 10 ) == LOWER('Extension:') lcConfData = ALLTRIM( SUBSTR( laConfig(I), 11 ) ) lcExt = 'c_' + ALLTRIM( GETWORDNUM( lcConfData, 1, '=' ) ) @@ -712,6 +731,38 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM tcExtraBackupLevels = ALLTRIM( SUBSTR( laConfig(I), 19 ) ) THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcExtraBackupLevels: ' + TRANSFORM(tcExtraBackupLevels) ) + CASE LEFT( laConfig(I), 23 ) == LOWER('PJX_Conversion_Support:') + THIS.PJX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > PJX_Conversion_Support: ' + TRANSFORM(THIS.PJX_Conversion_Support) ) + + CASE LEFT( laConfig(I), 23 ) == LOWER('VCX_Conversion_Support:') + THIS.VCX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > VCX_Conversion_Support: ' + TRANSFORM(THIS.VCX_Conversion_Support) ) + + CASE LEFT( laConfig(I), 23 ) == LOWER('SCX_Conversion_Support:') + THIS.SCX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > SCX_Conversion_Support: ' + TRANSFORM(THIS.SCX_Conversion_Support) ) + + CASE LEFT( laConfig(I), 23 ) == LOWER('FRX_Conversion_Support:') + THIS.FRX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > FRX_Conversion_Support: ' + TRANSFORM(THIS.FRX_Conversion_Support) ) + + CASE LEFT( laConfig(I), 23 ) == LOWER('LBX_Conversion_Support:') + THIS.LBX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > LBX_Conversion_Support: ' + TRANSFORM(THIS.LBX_Conversion_Support) ) + + CASE LEFT( laConfig(I), 23 ) == LOWER('MNX_Conversion_Support:') + THIS.MNX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > MNX_Conversion_Support: ' + TRANSFORM(THIS.MNX_Conversion_Support) ) + + CASE LEFT( laConfig(I), 23 ) == LOWER('DBF_Conversion_Support:') + THIS.DBF_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > DBF_Conversion_Support: ' + TRANSFORM(THIS.DBF_Conversion_Support) ) + + CASE LEFT( laConfig(I), 23 ) == LOWER('DBC_Conversion_Support:') + THIS.DBC_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > DBC_Conversion_Support: ' + TRANSFORM(THIS.DBC_Conversion_Support) ) + ENDCASE ENDFOR ENDIF @@ -866,11 +917,34 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- UN ARCHIVO INDIVIDUAL O CONSULTA DE SOPORTE DE ARCHIVO IF LEN(NVL(tc_InputFile,'')) = 1 *-- Consulta de soporte de conversión (compatibilidad con SourceSafe) + *-- SourceSafe consulta el tipo de soporte de cada archivo antes del Checkin/Checkout + *-- para saber si se puede hacer Diff y Merge. + *-- Para los códigos de tipo de archivo ver ayuda de "Type Property" DO CASE - CASE tc_InputFile $ 'dD' && DBC, DBF - lnCodError = 1 - CASE tc_InputFile $ 'KBMRV' && SCX, LBX, MNX, FRX, VCX - lnCodError = 2 + CASE tc_InputFile == FILETYPE_DATABASE + lnCodError = THIS.DBC_Conversion_Support + + CASE tc_InputFile == FILETYPE_FREETABLE + lnCodError = THIS.DBF_Conversion_Support + + CASE tc_InputFile == FILETYPE_FORM + lnCodError = THIS.SCX_Conversion_Support + + CASE tc_InputFile == FILETYPE_LABEL + lnCodError = THIS.LBX_Conversion_Support + + CASE tc_InputFile == FILETYPE_MENU + lnCodError = THIS.MNX_Conversion_Support + + CASE tc_InputFile == FILETYPE_REPORT + lnCodError = THIS.FRX_Conversion_Support + + CASE tc_InputFile == FILETYPE_CLASSLIB + lnCodError = THIS.VCX_Conversion_Support + + CASE tc_InputFile $ 'J' && PJX (J no exite en FoxPro, es un valor inventado para evitar conflicto con los tipos existentes) + lnCodError = THIS.PJX_Conversion_Support + OTHERWISE lnCodError = -1 ENDCASE @@ -997,81 +1071,126 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM DO CASE CASE lcExtension = 'VCX' + IF NOT INLIST(THIS.VCX_Conversion_Support, 1, 2) + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_VC2 ) .o_Conversor = CREATEOBJECT( 'c_conversor_vcx_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_VC2 ), '+N' ) CASE lcExtension = 'SCX' + IF NOT INLIST(THIS.SCX_Conversion_Support, 1, 2) + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_SC2 ) .o_Conversor = CREATEOBJECT( 'c_conversor_scx_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_SC2 ), '+N' ) CASE lcExtension = 'PJX' + IF NOT INLIST(THIS.PJX_Conversion_Support, 1, 2) + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_PJ2 ) .o_Conversor = CREATEOBJECT( 'c_conversor_pjx_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_PJ2 ), '+N' ) CASE lcExtension = 'PJM' + IF NOT INLIST(THIS.PJX_Conversion_Support, 1, 2) + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_PJ2 ) .o_Conversor = CREATEOBJECT( 'c_conversor_pjm_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_PJ2 ), '+N' ) CASE lcExtension = 'FRX' + IF NOT INLIST(THIS.FRX_Conversion_Support, 1, 2) + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_FR2 ) .o_Conversor = CREATEOBJECT( 'c_conversor_frx_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_FR2 ), '+N' ) CASE lcExtension = 'LBX' + IF NOT INLIST(THIS.LBX_Conversion_Support, 1, 2) + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_LB2 ) .o_Conversor = CREATEOBJECT( 'c_conversor_frx_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_LB2 ), '+N' ) CASE lcExtension = 'DBF' + IF NOT INLIST(THIS.DBF_Conversion_Support, 1, 2) + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_DB2 ) .o_Conversor = CREATEOBJECT( 'c_conversor_dbf_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_DB2 ), '+N' ) CASE lcExtension = 'DBC' + IF NOT INLIST(THIS.DBC_Conversion_Support, 1, 2) + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_DC2 ) .o_Conversor = CREATEOBJECT( 'c_conversor_dbc_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_DC2 ), '+N' ) CASE lcExtension = 'MNX' + IF NOT INLIST(THIS.MNX_Conversion_Support, 1, 2) + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_MN2 ) .o_Conversor = CREATEOBJECT( 'c_conversor_mnx_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_MN2 ), '+N' ) CASE lcExtension = .c_VC2 + IF THIS.VCX_Conversion_Support <> 2 + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'VCX' ) .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_vcx' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'VCX' ), '+N' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'VCT' ), '+N' ) CASE lcExtension = .c_SC2 + IF THIS.SCX_Conversion_Support <> 2 + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'SCX' ) .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_scx' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'SCX' ), '+N' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'SCT' ), '+N' ) CASE lcExtension = .c_PJ2 + IF THIS.PJX_Conversion_Support <> 2 + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'PJX' ) .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_pjx' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'PJX' ), '+N' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'PJT' ), '+N' ) CASE lcExtension = .c_FR2 + IF THIS.FRX_Conversion_Support <> 2 + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'FRX' ) .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_frx' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'FRX' ), '+N' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'FRT' ), '+N' ) CASE lcExtension = .c_LB2 + IF THIS.LBX_Conversion_Support <> 2 + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'LBX' ) .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_frx' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'LBX' ), '+N' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'LBT' ), '+N' ) CASE lcExtension = .c_DB2 + IF THIS.DBF_Conversion_Support <> 2 + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'DBF' ) .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dbf' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DBF' ), '+N' ) @@ -1079,6 +1198,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'CDX' ), '+N' ) CASE lcExtension = .c_DC2 + IF THIS.DCX_Conversion_Support <> 2 + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'DBC' ) .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dbc' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DBC' ), '+N' ) @@ -1086,6 +1208,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DCT' ), '+N' ) CASE lcExtension = .c_MN2 + IF THIS.MNX_Conversion_Support <> 2 + ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) + ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'MNX' ) .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_mnx' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'MNX' ), '+N' )