Changeset: 148 v1.19.5

- Agregado soporte para SourceSafe (Diff y Merge)
This commit is contained in:
fernando
2014-01-30 20:46:37 +01:00
parent d7744c3c72
commit 3a14c2ff84
5 changed files with 147 additions and 90 deletions

View File

@@ -26,7 +26,7 @@ _LegalTrademark = "Open Source"
_ProductName = " FOXBIN2PRG"
_MajorVer = "1"
_MinorVer = "19"
_Revision = " 214"
_Revision = " 216"
_LanguageID = "1034"
_AutoIncrement = "1"
*</DevInfo>
@@ -51,7 +51,7 @@ loProject = _VFP.Projects('foxbin2prg.pjx')
WITH loProject.FILES
.ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="1132857145" ID="1131721714" ObjRev="0" />
.ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1144882531" ID="1130644423" ObjRev="544" />
.ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1144955831" ID="1130644423" ObjRev="544" />
*</BuildProj>
.ITEM('__newproject.f2b').Remove()

Binary file not shown.

Binary file not shown.

View File

@@ -66,6 +66,7 @@
* 08/01/2014 FDBOZZO v1.19.3 Cambio en los timestamps de los TXT para mantener los valores vac<61>os que generaban much<63>simas diferencias
* 22/01/2014 FDBOZZO v1.19.4 Nuevo par<61>metro Recompile para forzar la recompilaci<63>n. Ahora por defecto el binario no se recompila para ganar velocidad y evitar errores. Debe recompilar manualmente.
* 22/01/2014 FDBOZZO v1.19.4 DBC: Agregado soporte para comentarios multil<69>nea (propiedad Comment)
* 30/01/2014 FDBOZZO v1.19.5 Agregada compatibilidad con SourceSafe para Diff y Merge
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
*
*---------------------------------------------------------------------------------------------------
@@ -279,7 +280,7 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb
#DEFINE C_FILE_DOESNT_EXIST_LOC 'El archivo no existe:'
#DEFINE C_FILE_NAME_IS_NOT_SUPPORTED_LOC 'El archivo [<<.c_InputFile>>] no est<73> soportado'
#DEFINE C_FILE_NOT_FOUND_LOC 'No se encontr<74> el archivo'
#DEFINE C_FOXBIN2PRG_CFG_EXTENSION_LOC 'extension:'
#DEFINE C_EXTENSION_RECONFIGURATION_LOC 'Reconfiguraci<63>n de extensi<EFBFBD>n:'
#DEFINE C_FOXBIN2PRG_ERROR_CAPTION_LOC 'FOXBIN2PRG: ERROR!!'
#DEFINE C_FOXBIN2PRG_INFO_SINTAX_LOC 'FOXBIN2PRG: INFORMACI<43>N DE SINTAXIS'
#DEFINE C_FOXBIN2PRG_INFO_SINTAX_EXAMPLE_LOC 'FOXBIN2PRG <cEspecArchivo.Ext> [cType_ND cTextName_ND cGenText_ND cNoMostrarErrores cDebug]' + CR_LF + CR_LF ;
@@ -308,25 +309,36 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb
#ENDIF
*******************************************************************************************************************
PUBLIC goCnv AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
LOCAL loCnv AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
LOCAL lnResp, loEx as Exception
goCnv = CREATEOBJECT("c_foxbin2prg")
*SYS(2030,1)
*SYS(2335,0)
*IF PCOUNT() > 1
* SET STEP ON
*ENDIF
loCnv = CREATEOBJECT("c_foxbin2prg")
loEx = NULL
lnResp = goCnv.ejecutar( tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug ;
lnResp = loCnv.ejecutar( tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug ;
, '', NULL, @loEx, .F., tcOriginalFileName, tcRecompile )
ADDPROPERTY(_SCREEN, 'ExitCode', lnResp)
IF _VFP.STARTMODE <= 1
RETURN lnResp
ENDIF
*IF _VFP.STARTMODE <= 1
* RETURN lnResp
*ENDIF
*-- Muy <20>til para procesos batch que capturan el c<>digo de error
IF NOT EMPTY(lnResp) AND VARTYPE(loEx) = "O"
IF _VFP.STARTMODE > 1 AND NOT EMPTY(lnResp) AND VARTYPE(loEx) = "O"
DECLARE ExitProcess IN Win32API INTEGER ExitCode
ExitProcess(1)
ENDIF
loEx = NULL
loCnv = NULL
RELEASE loEx, loCnv
SET COVERAGE TO
RETURN lnResp
QUIT
@@ -489,6 +501,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
IF '+D' $ tcAttrib
dwFileAttributes = BITOR(dwFileAttributes, FILE_ATTRIBUTE_DIRECTORY)
ENDIF
IF '+N' $ tcAttrib
dwFileAttributes = BITOR(dwFileAttributes, FILE_ATTRIBUTE_NORMAL)
ENDIF
IF '+T' $ tcAttrib
dwFileAttributes = BITOR(dwFileAttributes, FILE_ATTRIBUTE_TEMPORARY)
ENDIF
@@ -511,6 +526,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
IF '-D' $ tcAttrib AND BITAND(dwFileAttributes, FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY
dwFileAttributes = dwFileAttributes - FILE_ATTRIBUTE_DIRECTORY
ENDIF
IF '-N' $ tcAttrib AND BITAND(dwFileAttributes, FILE_ATTRIBUTE_NORMAL) = FILE_ATTRIBUTE_NORMAL
dwFileAttributes = dwFileAttributes - FILE_ATTRIBUTE_NORMAL
ENDIF
IF '-T' $ tcAttrib AND BITAND(dwFileAttributes, FILE_ATTRIBUTE_TEMPORARY) = FILE_ATTRIBUTE_TEMPORARY
dwFileAttributes = dwFileAttributes - FILE_ATTRIBUTE_TEMPORARY
ENDIF
@@ -667,18 +685,18 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
TRY
LOCAL I, lcPath, lnCodError, lcFileSpec, lcFile, laFiles(1,5), laConfig(1), lcConfigFile, lcExt ;
, llExisteConfig, lcConfData, lnFileCount ;
, llExisteConfig, lcConfData, lnFileCount, lcErrorInfo ;
, loEx AS EXCEPTION ;
, loFSO AS Scripting.FileSystemObject
lnCodError = 0
SET DELETED ON
SET DATE YMD
SET HOURS TO 24
SET CENTURY ON
SET SAFETY OFF
SET TABLEPROMPT OFF
*SET DELETED ON
*SET DATE YMD
*SET HOURS TO 24
*SET CENTURY ON
*SET SAFETY OFF
*SET TABLEPROMPT OFF
IF _VFP.STARTMODE > 0
SET ESCAPE OFF
@@ -714,11 +732,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
IF llExisteConfig
FOR I = 1 TO ALINES( laConfig, FILETOSTR( lcConfigFile ), 1+4 )
IF LOWER( LEFT( laConfig(I), 10 ) ) == C_FOXBIN2PRG_CFG_EXTENSION_LOC && 'extension:'
IF LOWER( LEFT( laConfig(I), 10 ) ) == 'extension:'
lcConfData = ALLTRIM( SUBSTR( laConfig(I), 11 ) )
lcExt = 'c_' + ALLTRIM( GETWORDNUM( lcConfData, 1, '=' ) )
IF PEMSTATUS( THIS, lcExt, 5 )
THIS.ADDPROPERTY( lcExt, UPPER( ALLTRIM( GETWORDNUM( lcConfData, 2, '=' ) ) ) )
*THIS.writeLog( 'Reconfiguraci<63>n de extensi<73>n:' + ' ' + lcExt + ' a ' + UPPER( ALLTRIM( GETWORDNUM( lcConfData, 2, '=' ) ) ) )
THIS.writeLog( C_EXTENSION_RECONFIGURATION_LOC + ' ' + lcExt + ' a ' + UPPER( ALLTRIM( GETWORDNUM( lcConfData, 2, '=' ) ) ) )
ENDIF
ENDIF
ENDFOR
@@ -787,60 +807,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
CASE tc_InputFile $ 'KBMRV' && SCX, LBX, MNX, FRX, VCX
lnCodError = 2
OTHERWISE
lnCodError = 0
lnCodError = -1
ENDCASE
ELSE
IF NOT EMPTY(tcType) AND NOT EMPTY(tcTextName)
*-- Compatibilidad con SourceSafe
lcExt = JUSTEXT(tc_InputFile)
IF tlGenText
*-- Create a textfile from binary
DO CASE
CASE lcExt_1 = 'PJX'
tc_InputFile = FORCEEXT(tc_InputFile, LOWER(THIS.c_PJ2))
CASE lcExt_1 = 'VCX'
tc_InputFile = FORCEEXT(tc_InputFile, LOWER(THIS.c_VC2))
CASE lcExt_1 = 'SCX'
tc_InputFile = FORCEEXT(tc_InputFile, LOWER(THIS.c_SC2))
CASE lcExt_1 = 'FRX'
tc_InputFile = FORCEEXT(tc_InputFile, LOWER(THIS.c_FR2))
CASE lcExt_1 = 'LBX'
tc_InputFile = FORCEEXT(tc_InputFile, LOWER(THIS.c_LB2))
CASE lcExt_1 = 'DBF'
tc_InputFile = FORCEEXT(tc_InputFile, LOWER(THIS.c_DB2))
CASE lcExt_1 = 'DBC'
tc_InputFile = FORCEEXT(tc_InputFile, LOWER(THIS.c_DC2))
CASE lcExt_1 = 'MNX'
tc_InputFile = FORCEEXT(tc_InputFile, LOWER(THIS.c_MN2))
ENDCASE
ELSE
*-- Create a binary from textfile
DO CASE
CASE lcExt_1 = THIS.c_PJ2
tc_InputFile = FORCEEXT(tc_InputFile, 'pjx')
CASE lcExt_1 = THIS.c_VC2
tc_InputFile = FORCEEXT(tc_InputFile, 'vcx')
CASE lcExt_1 = THIS.c_SC2
tc_InputFile = FORCEEXT(tc_InputFile, 'scx')
CASE lcExt_1 = THIS.c_FR2
tc_InputFile = FORCEEXT(tc_InputFile, 'frx')
CASE lcExt_1 = THIS.c_LB2
tc_InputFile = FORCEEXT(tc_InputFile, 'lbx')
CASE lcExt_1 = THIS.c_DB2
tc_InputFile = FORCEEXT(tc_InputFile, 'dbf')
CASE lcExt_1 = THIS.c_DC2
tc_InputFile = FORCEEXT(tc_InputFile, 'dbc')
CASE lcExt_1 = THIS.c_MN2
tc_InputFile = FORCEEXT(tc_InputFile, 'mnx')
ENDCASE
ENDIF
ENDIF
IF FILE(tc_InputFile)
ERASE ( tc_InputFile + '.ERR' )
IF THIS.l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
CD (tcRecompile)
@@ -850,6 +823,19 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
THIS.c_LogFile = tc_InputFile + '.LOG'
IF EVL(tcType,'0') <> '0' AND EVL(tcTextName,'0') <> '0'
*-- Compatibilidad con SourceSafe
IF NOT tlGenText
*-- COMPATIBILIDAD CON SOURCESAFE. 30/01/2014
*-- Create BINARIO desde versi<73>n TEXTO
*-- Como el archivo de entrada siempre es el binario cuando se usa SCCAPI,
*-- para se debe regenerar el binario (tlGenText=.F.) se debe usar como
*-- archivo de entrada tcTextName en su lugar. Aqu<71> los intercambio.
tc_InputFile = tcTextName
ENDIF
ENDIF
IF THIS.l_Debug
IF FILE( THIS.c_LogFile )
ERASE ( THIS.c_LogFile )
@@ -857,7 +843,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
THIS.writeLog( THIS.c_Foxbin2prg_FullPath + ' - FileSpec: ' + EVL(tc_InputFile,'') )
ENDIF
lnCodError = THIS.Convertir( tc_InputFile, toModulo, toEx, tlRelanzarError, tcOriginalFileName )
lnCodError = THIS.Convertir( tc_InputFile, toModulo, toEx, .T., tcOriginalFileName )
ENDIF
ENDIF
ENDCASE
@@ -866,11 +852,22 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
CATCH TO toEx
lnCodError = toEx.ErrorNo
lcErrorInfo = THIS.Exception2Str(toEx) + CR_LF + CR_LF + C_SOURCEFILE_LOC + THIS.c_InputFile
ADDPROPERTY(_SCREEN, 'ExitCode', toEx.ERRORNO)
IF llExisteConfig
THIS.writeLog( 'ERROR: ' + TRANSFORM(toEx.ERRORNO) + ', ' + toEx.MESSAGE + CR_LF ;
+ toEx.PROCEDURE + ', line ' + TRANSFORM(toEx.LINENO) + CR_LF ;
+ toEx.DETAILS )
TRY
STRTOFILE( lcErrorInfo, EVL(tc_InputFile,'foxbin2prg') + '.ERR' )
CATCH TO loEx2
ENDTRY
IF THIS.l_Debug
IF _VFP.STARTMODE = 0
SET STEP ON
ENDIF
THIS.writeLog( lcErrorInfo )
ENDIF
IF THIS.l_Debug AND THIS.l_ShowErrors
MESSAGEBOX( lcErrorInfo, 0+16+4096, C_FOXBIN2PRG_ERROR_CAPTION_LOC, 60000 )
ENDIF
IF tlRelanzarError
THROW
@@ -935,83 +932,103 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR C_FILE_DOESNT_EXIST_LOC + ' [' + .c_InputFile + ']'
ENDIF
IF FILE( .c_InputFile + '.ERR' )
TRY
ERASE ( .c_InputFile + '.ERR' )
CATCH
ENDTRY
ENDIF
lcExtension = UPPER( JUSTEXT(.c_InputFile) )
DO CASE
CASE lcExtension = 'VCX'
.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'
.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'
.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'
.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'
.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'
.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'
.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'
.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'
.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
.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
.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
.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
.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
.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
.c_OutputFile = FORCEEXT( .c_InputFile, 'DBF' )
.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dbf' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DBF' ), '+N' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'FPT' ), '+N' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'CDX' ), '+N' )
CASE lcExtension = .c_DC2
.c_OutputFile = FORCEEXT( .c_InputFile, 'DBC' )
.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dbc' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DBC' ), '+N' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DCX' ), '+N' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DCT' ), '+N' )
CASE lcExtension = .c_MN2
.c_OutputFile = FORCEEXT( .c_InputFile, 'MNX' )
.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_mnx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'MNX' ), '+N' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'MNT' ), '+N' )
OTHERWISE
*ERROR 'El archivo [' + .c_InputFile + '] no est<73> soportado'
@@ -1041,20 +1058,15 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
lnCodError = toEx.ERRORNO
lcErrorInfo = THIS.Exception2Str(toEx) + CR_LF + CR_LF + C_SOURCEFILE_LOC + THIS.c_InputFile
TRY
STRTOFILE( lcErrorInfo, THIS.c_InputFile + '.ERR' )
CATCH TO loEx2
ENDTRY
IF THIS.l_Debug
IF _VFP.STARTMODE = 0
SET STEP ON
ENDIF
THIS.writeLog( lcErrorInfo )
ENDIF
IF THIS.l_Debug AND THIS.l_ShowErrors
MESSAGEBOX( lcErrorInfo, 0+16+4096, C_FOXBIN2PRG_ERROR_CAPTION_LOC, 60000 )
*THIS.writeLog( lcErrorInfo )
ENDIF
*IF THIS.l_Debug AND THIS.l_ShowErrors
* MESSAGEBOX( lcErrorInfo, 0+16+4096, C_FOXBIN2PRG_ERROR_CAPTION_LOC, 60000 )
*ENDIF
IF tlRelanzarError && Usado en Unit Testing
THROW
ENDIF
@@ -1183,7 +1195,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
LOCAL lcLog, laFile(1,5)
*THIS.writeLog( '- Se ha solicitado capitalizar el archivo [' + tcFileName + ']' )
THIS.writeLog( TEXTMERGE(C_REQUESTING_CAPITALIZATION_OF_FILE_LOC) )
THIS.ChangeFileAttribute( tcFileName, '-R' )
THIS.ChangeFileAttribute( tcFileName, '+N' )
lcLog = ''
DO (tcEXE_CAPS) WITH tcFileName, '', 'F', lcLog, .T.
THIS.writeLog( lcLog )

45
foxbin2prg_en.h Normal file
View File

@@ -0,0 +1,45 @@
*-------------------------------------------------------------------------------------------------------------------------------------------
*-- ENGLISH TRANSLATION => RENAME OR COPY TO [foxbin2prg.h] TO USE, AND RECOMPILE FOXBIN2PRG.PRG - Feel free to change or adapt the strings.
*-------------------------------------------------------------------------------------------------------------------------------------------
#DEFINE C_ASTERISK_EXT_NOT_ALLOWED_LOC '* and ? extensions are not allowed because is dangerous (binaries can be overwriten with xx2 empty files)'
#DEFINE C_BACKLINK_CANT_UPDATE_BL_LOC 'Could not update backlink'
#DEFINE C_BACKLINK_OF_TABLE_LOC 'of table'
#DEFINE C_BACKUP_OF_LOC 'Backup of: '
#DEFINE C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC 'Can't generate file [<<THIS.c_OutputFile>>] because it is ReadOnly'
#DEFINE C_CONFIGFILE_LOC 'ConfigFile:'
#DEFINE C_CONVERTER_UNLOAD_LOC 'Converter unload'
#DEFINE C_CONVERTING_FILE_LOC 'Converting file'
#DEFINE C_DATA_ERROR_CANT_PARSE_UNPAIRING_DOUBLE_QUOTES_LOC 'Data Error: Cant't parse because unpairing double-quotes on line <<lcMetadatos>>'
#DEFINE C_DUPLICATED_FILE_LOC 'Duplicated file'
#DEFINE C_ENDDEFINE_MARKER_NOT_FOUND_LOC 'No se ha encontrado el marcador de fin [ENDDEFINE] de la l<>nea <<TRANSFORM( toClase._Inicio )>> para el identificador [<<toClase._Nombre>>]'
#DEFINE C_END_MARKER_NOT_FOUND_LOC 'Can't found end marker [<<ta_ID_Bloques(lnPrimerID,2)>>] that closes start marker [<<ta_ID_Bloques(lnPrimerID,1)>>] on line <<TRANSFORM(taBloquesExclusion(tnBloquesExclusion,1))>>'
#DEFINE C_FIELD_NOT_FOUND_ON_FILE_STRUCTURE_LOC 'Field [<<laProps(I)>>] not found on structure of file <<DBF("TABLABIN")>>'
#DEFINE C_FILE_DOESNT_EXIST_LOC 'File doesn't exist:'
#DEFINE C_FILE_NAME_IS_NOT_SUPPORTED_LOC 'File [<<.c_InputFile>>] is not supported'
#DEFINE C_FILE_NOT_FOUND_LOC 'File not found'
#DEFINE C_EXTENSION_RECONFIGURATION_LOC 'Extension Reconfiguration:'
#DEFINE C_FOXBIN2PRG_ERROR_CAPTION_LOC 'FOXBIN2PRG: ERROR!!'
#DEFINE C_FOXBIN2PRG_INFO_SINTAX_LOC 'FOXBIN2PRG: SINTAXIS INFO'
#DEFINE C_FOXBIN2PRG_INFO_SINTAX_EXAMPLE_LOC 'FOXBIN2PRG <cFileSpec.Ext> [cType_NA cTextName_NA cGenText_NA cDontShowErrors cDebug cDontShowProgress cOriginalFileName cRecompile]' + CR_LF + CR_LF ;
+ 'Example to generate TXT of all VCX of "c:\desa\clases", without showing error window and generating LOG file: ' + CR_LF ;
+ ' FOXBIN2PRG "c:\desa\clases\*.vcx" "0" "0" "0" "1" "1"' + CR_LF + CR_LF ;
+ 'Example to generate TXT of all VCX of "c:\desa\clases", without showing error window and without LOG file: ' + CR_LF ;
+ ' FOXBIN2PRG "c:\desa\clases\*.vc2" "0" "0" "0" "1" "0"'
#DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC 'FOXBIN2PRG is only for Visual FoxPro 9.0!'
#DEFINE C_FOXBIN2PRG_WARN_CAPTION_LOC 'FOXBIN2PRG: WARNING!'
#DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC 'Menu [<<THIS.c_InputFile>>] is NOT VFP 9 Format! - Please convert to VFP 9 with MODIFY MENU <<JUSTFNAME((THIS.c_InputFile))>>'
#DEFINE C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC 'Object [<<toObj.CLASS>>] does not contain oReg object (level <<TRANSFORM(tnNivel)>>)'
#DEFINE C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC '* Names capitalization program [<<lcEXE_CAPS>>] found'
#DEFINE C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC '* Names capitalization program [<<lcEXE_CAPS>>] not found'
#DEFINE C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC 'Operation not recognized. Only SETNAME and GETNAME allowed.'
#DEFINE C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC 'Optimization: Output file [<<THIS.c_OutputFile>>] is not overwriten because it is the same as the genereted.'
#DEFINE C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC 'Procedure not closed. Last line of code must be ENDPROC. [<<laLineas(1)>>]'
#DEFINE C_PROCESSING_LOC 'Processing file'
#DEFINE C_PROCESS_PROGRESS_LOC 'Process Progress:'
#DEFINE C_PROPERTY_NAME_NOT_RECOGNIZED_LOC 'Property [<<TRANSFORM(tnPropertyID)>>] is not recognized.'
#DEFINE C_REQUESTING_CAPITALIZATION_OF_FILE_LOC '- Requesting capitalization of file [<<tcFileName>>]'
#DEFINE C_SOURCEFILE_LOC 'Source file: '
#DEFINE C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC 'Nesting structure error. ENDPROC expected but found ENDDEFINE on class <<toClase._Nombre>> (<<loProcedure._Nombre>>), line <<TRANSFORM(I)>> of file <<THIS.c_InputFile>>'
#DEFINE C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC 'Nesting structure error. ENDPROC expected but found ENDDEFINE on class <<toClase._Nombre>> (<<toObjeto._Nombre>>.<<loProcedure._Nombre>>), line <<TRANSFORM(I)>> of file <<THIS.c_InputFile>>'
#DEFINE C_UNKNOWN_CLASS_NAME_LOC 'Unknown class [<<THIS.CLASS>>]'
#DEFINE C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC 'WARNING!!' + CR_LF+ 'MAKE SURE YOU ARE NOT USING A TABLE ALIAS ON INDEX KEY EXPRESSIONS!! (ex: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag keyname)'