diff --git a/FoxBin2PRGVersionFile.txt b/FoxBin2PRGVersionFile.txt
index c190130..2db2a73 100644
--- a/FoxBin2PRGVersionFile.txt
+++ b/FoxBin2PRGVersionFile.txt
@@ -24,6 +24,10 @@ Change History -------------------------------------------------------------
- Feature: Make some error descriptions more informative and precise (Lutz Scheffler)
- Feature: Allow specifying inputFile with relative path (Lutz Scheffler)
- Bug Fix scx: Metadata of Dataenvironment not properly generated when Dataenvironment is renamed
+- Bug Fix: Added PJX/PJ2 generation when specifying "file.pjx", "*" (Lutz Scheffler)
+- Some enhancements in german translations (Lutz Scheffler)
+- Feature: Added multiprocessing of projects (*.pjx, *.pj2) when specifying "file.pjx", "*" (Lutz Scheffler)
+- Change FoxBin2Prg base class from custom to session (Lutz Scheffler)
2015/01/18 v1.19.41
- Bug Fix db2: Erroneous detection of Invalid Table when size is less than 328 bytes. Lower limit was changed to 65 bytes.
diff --git a/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg b/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg
index d20a73a..9fb53ab 100644
--- a/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg
+++ b/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg
@@ -150,10 +150,11 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O
#ENDIF
TRY
- loEx = NULL
+ loEx = NULL
loFB2P_Esperado = CREATEOBJECT("EMPTY")
- loFB2P = THIS.ioFB2P
- loFB2P.c_Foxbin2prg_ConfigFile = FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest )
+ THIS.ioFB2P = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG", "", FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest ) )
+ loFB2P = THIS.ioFB2P
+ *loFB2P.c_Foxbin2prg_ConfigFile = FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest )
*-- DATOS DE ENTRADA
@@ -651,9 +652,10 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O
#ENDIF
TRY
- loEx = NULL
- loFB2P = THIS.ioFB2P
- loFB2P.c_Foxbin2prg_ConfigFile = FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest )
+ loEx = NULL
+ THIS.ioFB2P = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG", "", FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest ) )
+ loFB2P = THIS.ioFB2P
+ *loFB2P.c_Foxbin2prg_ConfigFile = FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest )
loFB2P.l_ShowErrors = .F.
diff --git a/foxbin2prg.exe b/foxbin2prg.exe
index c936c22..454db80 100644
Binary files a/foxbin2prg.exe and b/foxbin2prg.exe differ
diff --git a/foxbin2prg.prg b/foxbin2prg.prg
index d41cd1d..128e16e 100644
--- a/foxbin2prg.prg
+++ b/foxbin2prg.prg
@@ -137,6 +137,7 @@
* 25/02/2015 FDBOZZO v1.19.42 Mejora: Hacer algunos mensajes de error más descriptivos (Lutz Scheffler)
* 03/03/2015 FDBOZZO v1.19.42 Mejora: Permitir definir el archivo de entrada con un path relativo (Lutz Scheffler)
* 03/03/2015 FDBOZZO v1.19.42 Bug Fix scx: Metadato del Dataenvironment no se genera bien cuando el Dataenvironment es renombrado
+* 03/03/2015 FDBOZZO v1.19.42 Mejora: Permitir usar máscaras "*" para procesar múltiples proyectos a la vez (Lutz Scheffler)
*
*
*---------------------------------------------------------------------------------------------------
@@ -201,6 +202,7 @@
* 25/02/2015 Lutz Scheffler Reporte de Bug scx/vcx v1.19.41: Procesar solo un nivel de text/endtext, ya que no se admiten más niveles (Arreglado en v1.19.42)
* 25/02/2015 Lutz Scheffler Mejora v1.19.41: Hacer algunos mensajes de error más descriptivos (Agregado en v1.19.42)
* 03/03/2015 Lutz Scheffler Mejora v1.19.41: Permitir definir el archivo de entrada con un path relativo (Agregado en v1.19.42)
+* 28/03/2015 Lutz Scheffler Mejora v1.19.41: Permitir usar máscaras "*" para procesar múltiples proyectos a la vez (Agregado en v1.19.42)
*
*
*---------------------------------------------------------------------------------------------------
@@ -482,12 +484,13 @@ QUIT
*******************************************************************************************************************
-DEFINE CLASS c_foxbin2prg AS CUSTOM
+DEFINE CLASS c_foxbin2prg AS SESSION
#IF .F.
LOCAL THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
#ENDIF
_MEMBERDATA = [] ;
+ [] ;
+ + [] ;
+ [] ;
+ [] ;
+ [] ;
@@ -516,6 +519,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
+ [] ;
+ [] ;
+ [] ;
+ + [] ;
+ + [] ;
+ [] ;
+ [] ;
+ [] ;
@@ -558,6 +563,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
+ [] ;
+ [] ;
+ [] ;
+ + [] ;
+ [] ;
+ [] ;
+ [] ;
@@ -593,7 +599,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
+ []
- DIMENSION a_ProcessedFiles(1)
+ DIMENSION a_ProcessedFiles(1), a_ProcessedFiles_0(1)
PROTECTED l_ConfigEvaluated, n_CFG_Actual, l_Main_CFG_Loaded, o_Configuration, l_CFG_CachedAccess
*--
n_FB2PRG_Version = 1.19
@@ -647,6 +653,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
n_FileHandle = 0
n_ProcessedFiles = 0 && Contador usado para los archivos file.class.ext
n_ProcessedFilesCount = 0 && Contador genérico de procesados
+ n_ProcessedFiles_0 = 0 && Contador usado para los archivos file.ext
o_Conversor = NULL
o_Frm_Avance = NULL
o_WSH = NULL
@@ -676,6 +683,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
PROCEDURE INIT
+ LPARAMETERS tcCFG_File
+
LOCAL lcSys16, lnPosProg, lc_Foxbin2prg_EXE, laValues(1,5)
SET DELETED ON
SET DATE YMD
@@ -700,7 +709,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ENDIF
THIS.c_Foxbin2prg_FullPath = SUBSTR( lcSys16, lnPosProg )
- THIS.c_Foxbin2prg_ConfigFile = FORCEEXT( THIS.c_Foxbin2prg_FullPath, 'CFG' )
+ THIS.c_Foxbin2prg_ConfigFile = EVL( tcCFG_File, FORCEEXT( THIS.c_Foxbin2prg_FullPath, 'CFG' ) )
THIS.c_CurDir = SYS(5) + CURDIR()
lc_Foxbin2prg_EXE = FORCEEXT( THIS.c_Foxbin2prg_FullPath, 'EXE' )
THIS.c_FB2PRG_EXE_Version = 'v' + IIF( AGETFILEVERSION( laValues, lc_Foxbin2prg_EXE ) = 0, TRANSFORM(THIS.n_FB2PRG_Version), laValues(4) )
@@ -1916,8 +1925,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
loLang = _SCREEN.o_FoxBin2Prg_Lang
loFSO = .o_FSO
loWSH = .o_WSH
- *DIMENSION .a_ProcessedFiles(1)
- *.n_ProcessedFiles = 0
+ DIMENSION .a_ProcessedFiles_0(1)
+ .n_ProcessedFiles_0 = 0
lnPCount = 0
lcInputFile_Type = ''
@@ -1938,7 +1947,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ENDIF
*-- Ajusto la ruta si no es absoluta
- IF lcInputFile_Type == C_FILETYPE_FILE ;
+ IF LEN(tc_InputFile) > 1 ;
AND LEFT(LTRIM(tc_InputFile),2) <> '\\' ;
AND SUBSTR(LTRIM(tc_InputFile),2,1) <> ':' THEN
tc_InputFile = FULLPATH(tc_InputFile, .c_CurDir)
@@ -2040,7 +2049,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
*-- Evaluación de FileSpec de entrada
DO CASE
- CASE lcInputFile_Type == C_FILETYPE_FILE AND '*' $ JUSTEXT( tc_InputFile ) OR '?' $ JUSTEXT( tc_InputFile )
+ CASE lcInputFile_Type == C_FILETYPE_FILE AND ( '*' $ JUSTEXT( tc_InputFile ) OR '?' $ JUSTEXT( tc_InputFile ) )
IF .l_ShowErrors
*MESSAGEBOX( 'No se admiten extensiones * o ? porque es peligroso (se pueden pisar binarios con archivo xx2 vacíos).', 0+48+4096, 'FOXBIN2PRG: ERROR!!', 60000 )
MESSAGEBOX( loLang.C_ASTERISK_EXT_NOT_ALLOWED_LOC, 0+48+4096, loLang.C_FOXBIN2PRG_ERROR_CAPTION_LOC, 60000 )
@@ -2052,32 +2061,49 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
CASE lcInputFile_Type == C_FILETYPE_FILE AND '*' $ JUSTSTEM( tc_InputFile )
*-- SE QUIEREN TODOS LOS ARCHIVOS DE UNA EXTENSIÓN
- IF .n_ShowProgressbar <> 0 THEN
- .cargar_frm_avance()
- ENDIF
-
lcFileSpec = FULLPATH( tc_InputFile )
-
- DO CASE
- CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
- CD (tcRecompile)
- CASE tcRecompile == '1'
- CD (JUSTPATH(lcFileSpec))
- ENDCASE
-
.c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
IF .l_Debug
ERASE ( .c_LogFile )
ENDIF
+ IF EVL(tcType,'0') <> '*' THEN
+ IF .n_ShowProgressbar <> 0 THEN
+ .cargar_frm_avance()
+ ENDIF
+
+ DO CASE
+ CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
+ CD (tcRecompile)
+ CASE tcRecompile == '1'
+ CD (JUSTPATH(lcFileSpec))
+ ENDCASE
+ ENDIF
+
lnFileCount = ADIR( laFiles, lcFileSpec, '', 1 )
FOR I = 1 TO lnFileCount
lcFile = FORCEPATH( laFiles(I,1), JUSTPATH( lcFileSpec ) )
- .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 )
- lnCodError = .Convertir( lcFile, @toModulo, @toEx, .T., tcOriginalFileName )
- .writeLog_Flush()
+
+ DO CASE
+ CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJX' AND EVL(tcType,'0') == '*'
+ *-- SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UNO O MÁS PROYECTOS PJX
+ *-- Filespec: "*.PJX", "*"
+ .Evaluate_Full_PJX(lcFile, tcRecompile, @toModulo, @toEx, tcOriginalFileName, .c_LogFile)
+
+ CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJ2' AND EVL(tcType,'0') == '*'
+ *-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UNO O MÁS PROYECTOS PJ2
+ *-- Filespec: "*.PJ2", "*"
+ .Evaluate_Full_PJ2(lcFile, tcRecompile, @toModulo, @toEx, tcOriginalFileName, .c_LogFile)
+
+ OTHERWISE
+ *-- DEMÁS ARCHIVOS
+ *-- Filespec: "*.EXT"
+ .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 )
+ lnCodError = .Convertir( lcFile, @toModulo, @toEx, .T., tcOriginalFileName )
+ .writeLog_Flush()
+ ENDCASE
ENDFOR
EXIT
@@ -2241,100 +2267,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
DO CASE
CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJX' AND EVL(tcType,'0') == '*'
- *-- SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UN PROYECTO
- IF .n_ShowProgressbar <> 0 THEN
- .cargar_frm_avance()
- .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' )
- ENDIF
-
- .writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_BINARY_TO_TEXT_LOC )
- lcFileSpec = FULLPATH( tc_InputFile )
-
- DO CASE
- CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
- CD (tcRecompile)
- CASE tcRecompile == '1'
- CD (JUSTPATH(lcFileSpec))
- ENDCASE
-
- .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
-
- IF .l_Debug
- ERASE ( .c_LogFile )
- ENDIF
-
- SELECT 0
- USE (tc_InputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN
- lnFileCount = 0
-
- SCAN FOR NOT DELETED()
- lnFileCount = lnFileCount + 1
- DIMENSION laFiles(lnFileCount,1)
- laFiles(lnFileCount,1) = ADDBS( JUSTPATH( lcFileSpec ) ) + ALLTRIM( NAME, 0, ' ', CHR(0) )
- ENDSCAN
-
- USE IN (SELECT("TABLABIN"))
-
- *-- Luego convierto los archivos incluidos
- FOR I = 1 TO lnFileCount
- lcFile = laFiles(I,1)
- .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 )
-
- IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
- lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
- .writeLog_Flush()
- ENDIF
- ENDFOR
-
+ *-- SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UN PROYECTO PJX
+ .Evaluate_Full_PJX(tc_InputFile, tcRecompile, @toModulo, @toEx, @tcOriginalFileName)
EXIT
CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJ2' AND EVL(tcType,'0') == '*'
- *-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UN PROYECTO
- IF .n_ShowProgressbar <> 0 THEN
- .cargar_frm_avance()
- .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' )
- ENDIF
-
- .writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_TEXT_TO_BINARY_LOC )
- lcFileSpec = FULLPATH( tc_InputFile )
-
- DO CASE
- CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
- CD (tcRecompile)
- CASE tcRecompile == '1'
- CD (JUSTPATH(lcFileSpec))
- ENDCASE
-
- .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
-
- IF .l_Debug
- ERASE ( .c_LogFile )
- ENDIF
-
- lnFileCount = ALINES( laFiles, STREXTRACT( FILETOSTR(tc_InputFile), C_BUILDPROJ_I, C_BUILDPROJ_F ), 1+4 )
-
- FOR I = lnFileCount TO 1 STEP -1
- IF '.ADD(' $ laFiles(I)
- laFiles(I) = ADDBS( JUSTPATH( lcFileSpec ) ) + STREXTRACT( laFiles(I), ".ADD('", "')" )
- laFiles(I) = FORCEEXT( laFiles(I), .Get_Ext2FromExt( UPPER(JUSTEXT(laFiles(I))) ) )
- ELSE
- lnFileCount = lnFileCount - 1
- ADEL( laFiles, I )
- DIMENSION laFiles(lnFileCount)
- ENDIF
- ENDFOR
-
- *-- Luego convierto los archivos incluidos
- FOR I = 1 TO lnFileCount
- lcFile = laFiles(I)
- .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 )
-
- IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
- lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
- .writeLog_Flush()
- ENDIF
- ENDFOR
-
+ *-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UN PROYECTO PJ2
+ .Evaluate_Full_PJ2(tc_InputFile, tcRecompile, @toModulo, @toEx, @tcOriginalFileName)
EXIT
CASE EVL(tcType,'0') <> '0' AND EVL(tcTextName,'0') <> '0'
@@ -2455,6 +2394,191 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ENDPROC
+ PROCEDURE Evaluate_Full_PJX
+ *--------------------------------------------------------------------------------------------------------------
+ * SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UN PROYECTO PJX
+ *--------------------------------------------------------------------------------------------------------------
+ * PARÁMETROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
+ * tc_InputFile (v! IN ) Nombre del archivo de entrada
+ * tcRecompile (v? IN ) Indica recompilar ('1') el binario una vez regenerado. [Cambio de funcionamiento por defecto]
+ * Este cambio es para ganar tiempo, velocidad y seguridad. Además la recompilación que hace FoxBin2Prg
+ * se hace desde el directorio del archivo, con lo que las referencias relativas pueden
+ * generar errores de compilación, típicamente los #include.
+ * NOTA: Si en vez de '1' se indica un Path (p.ej, el del proyecto, se usará como base para recompilar
+ * toModulo (@? OUT) Referencia de objeto del módulo generado (para Unit Testing)
+ * toEx (@? OUT) Objeto con información del error
+ * tcOriginalFileName (v? IN ) Sirve para los casos en los que inputFile es un nombre temporal y se quiere generar
+ * el nombre correcto dentro de la versión texto (por ej: en los PJ2 y las cabeceras)
+ * tcLogFile (v? IN ) Nombre del log a usar
+ *--------------------------------------------------------------------------------------------------------------
+ LPARAMETERS tc_InputFile, tcRecompile, toModulo, toEx, tcOriginalFileName, tcLogFile
+
+ LOCAL lcFileSpec, lnFileCount, laFiles(1,1), lcFile, lnCodError, I, lnFileCount ;
+ , loLang AS CL_LANG OF 'FOXBIN2PRG.PRG'
+
+ TRY
+ WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
+ loLang = _SCREEN.o_FoxBin2Prg_Lang
+ lcFileSpec = FULLPATH( tc_InputFile )
+
+ IF .n_ShowProgressbar <> 0 THEN
+ .cargar_frm_avance()
+ .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' )
+ ENDIF
+
+ IF EMPTY(tcLogFile)
+ .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
+
+ IF .l_Debug
+ ERASE ( .c_LogFile )
+ ENDIF
+ ENDIF
+
+ .writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_BINARY_TO_TEXT_LOC )
+
+ DO CASE
+ CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
+ CD (tcRecompile)
+ CASE tcRecompile == '1'
+ CD (JUSTPATH(lcFileSpec))
+ ENDCASE
+
+ SELECT 0
+ USE (tc_InputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN
+ lnFileCount = 0
+
+ SCAN FOR NOT DELETED()
+ lnFileCount = lnFileCount + 1
+ DIMENSION laFiles(lnFileCount,1)
+ laFiles(lnFileCount,1) = ADDBS( JUSTPATH( lcFileSpec ) ) + ALLTRIM( NAME, 0, ' ', CHR(0) )
+ ENDSCAN
+
+ USE IN (SELECT("TABLABIN"))
+
+ *-- Convierto primero el proyecto
+ lcFile = tc_InputFile
+ IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
+ lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
+ .writeLog_Flush()
+ ENDIF
+
+ *-- Luego convierto los archivos incluidos
+ FOR I = 1 TO lnFileCount
+ lcFile = laFiles(I,1)
+ .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 )
+
+ IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
+ IF .n_ProcessedFiles_0 > 0 THEN
+ *-- Buscar si fue procesado antes
+ IF ASCAN( .a_ProcessedFiles_0, lcFile, 1, 0, 0, 1+2+4 ) > 0 THEN
+ *.writeLog( 'OPTIMIZACIÓN: saltando archivo ya procesado [' + (lcFile) + ']' )
+ .writeLog( TEXTMERGE( loLang.C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC ) )
+ LOOP
+ ENDIF
+ ENDIF
+
+ lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
+ .writeLog_Flush()
+ ENDIF
+ ENDFOR
+ ENDWITH
+ ENDTRY
+ ENDPROC
+
+
+ PROCEDURE Evaluate_Full_PJ2
+ *--------------------------------------------------------------------------------------------------------------
+ * SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UN PROYECTO PJ2
+ *--------------------------------------------------------------------------------------------------------------
+ * PARÁMETROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
+ * tc_InputFile (v! IN ) Nombre del archivo de entrada
+ * tcRecompile (v? IN ) Indica recompilar ('1') el binario una vez regenerado. [Cambio de funcionamiento por defecto]
+ * Este cambio es para ganar tiempo, velocidad y seguridad. Además la recompilación que hace FoxBin2Prg
+ * se hace desde el directorio del archivo, con lo que las referencias relativas pueden
+ * generar errores de compilación, típicamente los #include.
+ * NOTA: Si en vez de '1' se indica un Path (p.ej, el del proyecto, se usará como base para recompilar
+ * toModulo (@? OUT) Referencia de objeto del módulo generado (para Unit Testing)
+ * toEx (@? OUT) Objeto con información del error
+ * tcOriginalFileName (v? IN ) Sirve para los casos en los que inputFile es un nombre temporal y se quiere generar
+ * el nombre correcto dentro de la versión texto (por ej: en los PJ2 y las cabeceras)
+ * tcLogFile (v? IN ) Nombre del log a usar
+ *--------------------------------------------------------------------------------------------------------------
+ LPARAMETERS tc_InputFile, tcRecompile, toModulo, toEx, tcOriginalFileName, tcLogFile
+
+ LOCAL lcFileSpec, lnFileCount, laFiles(1,1), lcFile, lnCodError, I, lnFileCount ;
+ , loLang AS CL_LANG OF 'FOXBIN2PRG.PRG'
+
+ TRY
+ WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
+ loLang = _SCREEN.o_FoxBin2Prg_Lang
+ lcFileSpec = FULLPATH( tc_InputFile )
+
+ IF .n_ShowProgressbar <> 0 THEN
+ .cargar_frm_avance()
+ .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' )
+ ENDIF
+
+ IF EMPTY(tcLogFile)
+ .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
+
+ IF .l_Debug
+ ERASE ( .c_LogFile )
+ ENDIF
+ ENDIF
+
+ .writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_TEXT_TO_BINARY_LOC )
+
+ DO CASE
+ CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
+ CD (tcRecompile)
+ CASE tcRecompile == '1'
+ CD (JUSTPATH(lcFileSpec))
+ ENDCASE
+
+ lnFileCount = ALINES( laFiles, STREXTRACT( FILETOSTR(tc_InputFile), C_BUILDPROJ_I, C_BUILDPROJ_F ), 1+4 )
+
+ FOR I = lnFileCount TO 1 STEP -1
+ IF '.ADD(' $ laFiles(I)
+ laFiles(I) = ADDBS( JUSTPATH( lcFileSpec ) ) + STREXTRACT( laFiles(I), ".ADD('", "')" )
+ laFiles(I) = FORCEEXT( laFiles(I), .Get_Ext2FromExt( UPPER(JUSTEXT(laFiles(I))) ) )
+ ELSE
+ lnFileCount = lnFileCount - 1
+ ADEL( laFiles, I )
+ DIMENSION laFiles(lnFileCount)
+ ENDIF
+ ENDFOR
+
+ *-- Convierto primero el proyecto
+ lcFile = tc_InputFile
+ IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
+ lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
+ .writeLog_Flush()
+ ENDIF
+
+ *-- Luego convierto los archivos incluidos
+ FOR I = 1 TO lnFileCount
+ lcFile = laFiles(I)
+ .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 )
+
+ IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
+ IF .n_ProcessedFiles_0 > 0 THEN
+ *-- Buscar si fue procesado antes
+ IF ASCAN( .a_ProcessedFiles_0, lcFile, 1, 0, 0, 1+2+4 ) > 0 THEN
+ *.writeLog( 'OPTIMIZACIÓN: saltando archivo ya procesado [' + (lcFile) + ']' )
+ .writeLog( TEXTMERGE( loLang.C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC ) )
+ LOOP
+ ENDIF
+ ENDIF
+
+ lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
+ .writeLog_Flush()
+ ENDIF
+ ENDFOR
+ ENDWITH
+ ENDTRY
+ ENDPROC
+
+
HIDDEN PROCEDURE ejecutar_WriteErrorLog
LPARAMETERS toEx, tcErrorInfo
@@ -2551,7 +2675,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ENDIF
ENDIF
-
IF NOT EMPTY(tcOriginalFileName)
tcOriginalFileName = loFSO.GetAbsolutePathName( tcOriginalFileName )
ENDIF
@@ -2562,9 +2685,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
.c_OriginalFileName = FORCEEXT(.c_OriginalFileName,'pjx')
ENDIF
+ *-- Conteo de archivos normales procesados
+ .n_ProcessedFiles_0 = .n_ProcessedFiles_0 + 1
+ DIMENSION .a_ProcessedFiles_0(.n_ProcessedFiles_0)
+ .a_ProcessedFiles_0(.n_ProcessedFiles_0) = .c_InputFile
+
.writeLog( C_TAB + 'c_OriginalFileName: ' + .c_OriginalFileName )
.writeLog( )
- .o_Conversor = NULL
IF NOT FILE(.c_InputFile)
ERROR loLang.C_FILE_DOESNT_EXIST_LOC + ' [' + .c_InputFile + ']'
@@ -2578,7 +2705,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_VC2 )
- .o_Conversor = CREATEOBJECT( 'c_conversor_vcx_a_prg' )
+ loConversor = CREATEOBJECT( 'c_conversor_vcx_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_VC2 ), lcForceAttribs )
CASE lcExtension = 'SCX'
@@ -2586,7 +2713,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_SC2 )
- .o_Conversor = CREATEOBJECT( 'c_conversor_scx_a_prg' )
+ loConversor = CREATEOBJECT( 'c_conversor_scx_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_SC2 ), lcForceAttribs )
CASE lcExtension = 'PJX'
@@ -2594,7 +2721,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_PJ2 )
- .o_Conversor = CREATEOBJECT( 'c_conversor_pjx_a_prg' )
+ loConversor = CREATEOBJECT( 'c_conversor_pjx_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_PJ2 ), lcForceAttribs )
CASE lcExtension = 'PJM'
@@ -2602,7 +2729,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_PJ2 )
- .o_Conversor = CREATEOBJECT( 'c_conversor_pjm_a_prg' )
+ loConversor = CREATEOBJECT( 'c_conversor_pjm_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_PJ2 ), lcForceAttribs )
CASE lcExtension = 'FRX'
@@ -2610,7 +2737,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_FR2 )
- .o_Conversor = CREATEOBJECT( 'c_conversor_frx_a_prg' )
+ loConversor = CREATEOBJECT( 'c_conversor_frx_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_FR2 ), lcForceAttribs )
CASE lcExtension = 'LBX'
@@ -2618,7 +2745,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_LB2 )
- .o_Conversor = CREATEOBJECT( 'c_conversor_frx_a_prg' )
+ loConversor = CREATEOBJECT( 'c_conversor_frx_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_LB2 ), lcForceAttribs )
CASE lcExtension = 'DBF'
@@ -2626,7 +2753,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_DB2 )
- .o_Conversor = CREATEOBJECT( 'c_conversor_dbf_a_prg' )
+ loConversor = CREATEOBJECT( 'c_conversor_dbf_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_DB2 ), lcForceAttribs )
CASE lcExtension = 'DBC'
@@ -2634,7 +2761,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_DC2 )
- .o_Conversor = CREATEOBJECT( 'c_conversor_dbc_a_prg' )
+ loConversor = CREATEOBJECT( 'c_conversor_dbc_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_DC2 ), lcForceAttribs )
CASE lcExtension = 'MNX'
@@ -2642,7 +2769,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_MN2 )
- .o_Conversor = CREATEOBJECT( 'c_conversor_mnx_a_prg' )
+ loConversor = CREATEOBJECT( 'c_conversor_mnx_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_MN2 ), lcForceAttribs )
CASE lcExtension = .c_VC2
@@ -2650,7 +2777,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'VCX' )
- .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_vcx' )
+ loConversor = CREATEOBJECT( 'c_conversor_prg_a_vcx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'VCX' ), lcForceAttribs )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'VCT' ), lcForceAttribs )
@@ -2659,7 +2786,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'SCX' )
- .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_scx' )
+ loConversor = CREATEOBJECT( 'c_conversor_prg_a_scx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'SCX' ), lcForceAttribs )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'SCT' ), lcForceAttribs )
@@ -2668,7 +2795,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'PJX' )
- .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_pjx' )
+ loConversor = CREATEOBJECT( 'c_conversor_prg_a_pjx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'PJX' ), lcForceAttribs )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'PJT' ), lcForceAttribs )
@@ -2677,7 +2804,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'FRX' )
- .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_frx' )
+ loConversor = CREATEOBJECT( 'c_conversor_prg_a_frx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'FRX' ), lcForceAttribs )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'FRT' ), lcForceAttribs )
@@ -2686,7 +2813,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'LBX' )
- .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_frx' )
+ loConversor = CREATEOBJECT( 'c_conversor_prg_a_frx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'LBX' ), lcForceAttribs )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'LBT' ), lcForceAttribs )
@@ -2695,7 +2822,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'DBF' )
- .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dbf' )
+ loConversor = CREATEOBJECT( 'c_conversor_prg_a_dbf' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DBF' ), lcForceAttribs )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'FPT' ), lcForceAttribs )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'CDX' ), lcForceAttribs )
@@ -2705,7 +2832,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'DBC' )
- .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dbc' )
+ loConversor = CREATEOBJECT( 'c_conversor_prg_a_dbc' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DBC' ), lcForceAttribs )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DCX' ), lcForceAttribs )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DCT' ), lcForceAttribs )
@@ -2715,7 +2842,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'MNX' )
- .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_mnx' )
+ loConversor = CREATEOBJECT( 'c_conversor_prg_a_mnx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'MNX' ), lcForceAttribs )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'MNT' ), lcForceAttribs )
@@ -2767,7 +2894,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
IF NOT .l_OptimizeByFilestamp OR .t_InputFile_TimeStamp >= .t_OutputFile_TimeStamp THEN
.c_Type = UPPER(JUSTEXT(.c_OutputFile))
- loConversor = .o_Conversor
loConversor.c_InputFile = .c_InputFile
loConversor.c_OutputFile = .c_OutputFile
loConversor.c_LogFile = .c_LogFile
@@ -2782,14 +2908,14 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
*--
.AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + .c_InputFile + '...', 0, 0, 0 )
- IF AEVENTS( laEvents, .o_Conversor ) = 0 THEN
- BINDEVENT( .o_Conversor, 'AvanceDelProceso', THIS, 'AvanceDelProceso' )
+ IF AEVENTS( laEvents, loConversor ) = 0 THEN
+ BINDEVENT( loConversor, 'AvanceDelProceso', THIS, 'AvanceDelProceso' )
ENDIF
loConversor.Convertir( @toModulo, .F., THIS )
.n_ProcessedFilesCount = .n_ProcessedFilesCount + 1
.writeLog()
- .writeLog(.o_Conversor.c_TextLog) && Recojo el LOG que haya generado el conversor
+ .writeLog(loConversor.c_TextLog) && Recojo el LOG que haya generado el conversor
*-- Logueo los errores
IF NOT EMPTY(loConversor.c_TextErr) THEN
@@ -2822,11 +2948,11 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ENDIF
FINALLY
- IF AEVENTS( laEvents, THIS.o_Conversor ) > 0 THEN
- UNBINDEVENTS( THIS.o_Conversor )
+ IF AEVENTS( laEvents, loConversor ) > 0 THEN
+ UNBINDEVENTS( loConversor )
ENDIF
- STORE NULL TO loConversor, THIS.o_Conversor, loFSO
+ STORE NULL TO loConversor, loFSO
*IF lnCodError = 0 OR NOT THIS.l_ShowErrors THEN
* THIS.writeLog( REPLICATE('-',100) )
@@ -22315,6 +22441,7 @@ DEFINE CLASS CL_LANG AS Custom
C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = ""
C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = ""
C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = ""
+ C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = ""
C_OPTION_LOC = ""
C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = ""
C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = ""
@@ -22463,6 +22590,8 @@ DEFINE CLASS CL_LANG AS Custom
.C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* Programme des noms de capitalisation [<>] introuvables"
.C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Object [<>] ne contient pas l'objet oReg (niveau <>)"
.C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Opération non reconnu. Seulement SETNAME et GETNAME permis."
+ .C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "Optimisation: sauter fichier déjà traité [<<(lcFile)>>]"
+ .C_OPTION_LOC = "Option"
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "La classe externe ne correspond pas à la classe interne"
.C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimisation: fichier de sortie [<>] ne était pas écrasé parce que ce est la même que celle générée."
.C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimisation: fichier de sortie [<>] n'a pas été régénéré car il est plus récent que le fichier d'entrée."
@@ -22546,9 +22675,11 @@ DEFINE CLASS CL_LANG AS Custom
.C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* No se ha encontrado el programa de capitalización de nombres [<>]"
.C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Objeto [<>] no contiene el objeto oReg (nivel <>)"
.C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Operación no reconocida. Solo re reconoce SETNAME y GETNAME."
+ .C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "Optimización: saltando el archivo ya procesado [<<(lcFile)>>]"
+ .C_OPTION_LOC = "Option"
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "La clase externa no coincide con la clase interna"
- .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimización: El archivo de salida [<>] no se sobreescribe por ser igual al generado."
- .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimización: El archivo de salida [<>] no se regenera por ser más nuevo que el de entrada."
+ .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimización: el archivo de salida [<>] no se sobreescribe por ser igual al generado."
+ .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimización: el archivo de salida [<>] no se regenera por ser más nuevo que el de entrada."
.C_PRESS_ESC_TO_CANCEL = "Pulse Esc para Cancelar"
.C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "Procedimiento sin cerrar. La última línea de código debe ser ENDPROC. [<>, Recno:<>]"
.C_PROCESSING_LOC = "Procesando archivo"
@@ -22572,11 +22703,11 @@ DEFINE CLASS CL_LANG AS Custom
*-------------------------------------------------------------------------------------------------------------------------------------------
*-- NOTE: ES MÜSSEN ANFÜHRUNGSZEICHEN BENUTZT WERDEN, ODER SYNTAX ERRORS PASSIEREN BEIM COMPILE. SELTSAM :(
*-------------------------------------------------------------------------------------------------------------------------------------------
- .C_ASTERISK_EXT_NOT_ALLOWED_LOC = "* und ? Erweiterungen sind nicht erlaubt, da es gefährlich ist (binaries könnten überschrieben werden mit xx2 leeren Dateien)"
- .C_BACKLINK_CANT_UPDATE_BL_LOC = "Backlink kann nicht geupdated werden"
+ .C_ASTERISK_EXT_NOT_ALLOWED_LOC = "Die Erweiterungen * und ? sind nicht erlaubt, da sie gefährlich sind (Binaries könnten mit xx2 leeren Dateien überschrieben werden)"
+ .C_BACKLINK_CANT_UPDATE_BL_LOC = "Backlink kann nicht aktualisiert werden"
.C_BACKLINK_OF_TABLE_LOC = "von Tabelle"
- .C_BACKUP_OF_LOC = "Mache Backup von: "
- .C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC = "Kann Datei [<>] nicht generieren da sie Schreibgeschützt ist"
+ .C_BACKUP_OF_LOC = "Erzeuge Backup von: "
+ .C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC = "Kann Datei [<>] nicht generieren, da sie schreibgeschützt ist"
.C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "Optimierung: Grund Datei [<>] Schon verarbeitet, das Überspringen Verarbeitung der Datei [<>]"
.C_CONFIGFILE_LOC = "Benutze Konfigurationsdatei:"
.C_CONVERSION_CANCELLED_BY_USER_LOC = "Konvertierung durch den Benutzer abgebrochen"
@@ -22588,16 +22719,16 @@ DEFINE CLASS CL_LANG AS Custom
.C_CONVERT_FOLDER_QUESTION_LOC = "Welche Umwandlung sollte sich auf die Dateien dieses Verzeichnis durchgeführt werden?"
.C_CONVERTER_UNLOAD_LOC = "Konverter wird entladen"
.C_CONVERTING_FILE_LOC = "Konvertiere Datei"
- .C_DATA_ERROR_CANT_PARSE_UNPAIRING_DOUBLE_QUOTES_LOC = "Datenfehler: Keine Analyse möglich da ungepaarte Anführungszeichen in Zeile <>"
+ .C_DATA_ERROR_CANT_PARSE_UNPAIRING_DOUBLE_QUOTES_LOC = "Datenfehler: Keine Analyse möglich, da ungepaarte Anführungszeichen in Zeile <> sind."
.C_DUPLICATED_FILE_LOC = "Doppelte Datei"
.C_DUPLICATED_OBJECT_LOC = "Doppelte Objekt"
.C_ENDDEFINE_MARKER_NOT_FOUND_LOC = "Kann keinen Ende Marker [ENDDEFINE] in Zeile <> für die ID [<>] finden"
.C_END_MARKER_NOT_FOUND_LOC = "Kann keinen Ende Marker [<>] welcher den Start Marker [<>] in Zeile <> schließt"
- .C_END_OF_PROCESS_LOC = "Ende der Prozess"
+ .C_END_OF_PROCESS_LOC = "Ende desr Prozesses"
.C_ERROR_LOC = "FEHLER"
.C_ERRORS_FOUND_IN_FILE_LOC = "FEHLER IN FILE GEFUNDEN"
- .C_EXTENSION_RECONFIGURATION_LOC = "Erweiterungsneukonfiguration:"
- .C_EXTERNAL_CLASS_COUNT_DOES_NOT_MATCH_FOUND_CLASSES_LOC = "Externe Klassenzahl (<< toModulo._ExternalClasses_Count >>) nicht gefunden Klassen entsprechen (<< toModulo._Clases_Count >>) für Datei [<< toFoxBin2Prg.c_InputFile >>]"
+ .C_EXTENSION_RECONFIGURATION_LOC = "Nneukonfiguration der Erweiterungen:" &&wir wollen es mal nicht übertreiben, mit den zusammengesetzten Substantiven
+ .C_EXTERNAL_CLASS_COUNT_DOES_NOT_MATCH_FOUND_CLASSES_LOC = "Die Anzahl externee Klassen (<< toModulo._ExternalClasses_Count >>) entspricht nicht der der gefunden Klassen (<< toModulo._Clases_Count >>), Datei: [<< toFoxBin2Prg.c_InputFile >>]"
.C_EXTERNAL_CLASS_NAME_WAS_NOT_FOUND_LOC = "Keine externe Klasse gefunden"
.C_EXTERNAL_PARAMETERS_LOC = "EXTERNE PARAMETER"
.C_FIELD_NOT_FOUND_ON_FILE_STRUCTURE_LOC = "Feld [<>] nicht in der Struktur von Datei <> gefunden"
@@ -22612,7 +22743,7 @@ DEFINE CLASS CL_LANG AS Custom
+ " FOXBIN2PRG 'c:\development\classes\*.vcx' '0' '0' '0' '1' '1'" + CR_LF + CR_LF ;
+ "Ein Beispiel für die Generierung der TXT von allen VCX in 'c:\development\classes', ohne Anzeige des Fehlerfensters und ohne LOG datei: " + CR_LF ;
+ " FOXBIN2PRG 'c:\development\classes\*.vc2' '0' '0' '0' '1' '0'"
- .C_FOXBIN2PRG_JUST_VFP_9_LOC = "FOXBIN2PRG ist nur für Visual FoxPro 9.0!"
+ .C_FOXBIN2PRG_JUST_VFP_9_LOC = "FOXBIN2PRG arbeitet nur für Visual FoxPro 9.0!"
.C_FOXBIN2PRG_WARN_CAPTION_LOC = "FOXBIN2PRG: WARNUNG!"
.C_GENERATED_FILE_SIZE_LOC = "Generierte Dateigröße"
.C_GENERATING_BINARY_LOC = "Gene Binary"
@@ -22624,31 +22755,33 @@ DEFINE CLASS CL_LANG AS Custom
.C_IS_UNSUPPORTED_LOC = "wird nicht unterstützt"
.C_LANGUAGE_LOC = "DE"
.C_MAIN_EXECUTION_LOC = "HAUPTAUSFÜHRUNGS"
- .C_MENU_NOT_IN_VFP9_FORMAT_LOC = "Menu [<>] ist NICHT in VFP 9 Format! - Bitte zuerst nach VFP 9 konvertieren mit MODIFY MENU '<>'"
+ .C_MENU_NOT_IN_VFP9_FORMAT_LOC = "Menu [<>] ist NICHT in VFP 9 Format! - Bitte zuerst mit MODIFY MENU '<>' nach VFP 9 konvertieren."
.C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC = "* Programm für Großschreibungssetzung [<>] gefunden"
.C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* Programm für Großschreibungssetzung [<>] nicht gefunden"
- .C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Objekt [<>] enthält nicht oReg Objekt (level <>)"
+ .C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Objekt [<>] enthält nicht das oReg Objekt (level <>)"
.C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Befehl nicht erkannt. Nur SETNAME und GETNAME erlaubt."
+ .C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "Optimierung: Überspringen von bereits bearbeiteten Datei [<<(lcFile)>>]"
+ .C_OPTION_LOC = "Option"
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "Die äußere Klasse nicht die innere Klassifizierung anzeigen lassen"
- .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimierung: Ausgabedatei [<>] wurde nicht überschrieben da sie dieselbe ist wie die neu generierte."
- .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimierung: Ausgabedatei [<>] wurde nicht erneuert da sie neuer ist als die Ursprungsdatei."
+ .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimierung: Ausgabedatei [<>] wurde nicht überschrieben, da sie dieselbe ist wie die neu generierte."
+ .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimierung: Ausgabedatei [<>] wurde nicht erneuert, da sie neuer ist als die Ursprungsdatei."
.C_PRESS_ESC_TO_CANCEL = "Drücken Sie Esc für Abbrechen"
- .C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "Procedur nicht geschlossen. Letzte Zeile des Codes muss ENDPROC sein. [<>, Recno:<>]"
+ .C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "Prozcedur nicht geschlossen. Letzte Zeile des Codes muss ENDPROC sein. [<>, Recno:<>]"
.C_PROCESSING_LOC = "Bearbeite Datei"
.C_PROCESS_PROGRESS_LOC = "Bearbeitungsfortschritt:"
.C_PROPERTY_NAME_NOT_RECOGNIZED_LOC = "Eigenschaft [<>] nicht erkannt."
.C_READING_CFG_VALUES_FROM_DISK_LOC = "LESEWERTE CFG-DATEI AUF DER FESTPLATTE"
.C_REPORT_NOT_IN_VFP9_FORMAT_LOC = "Report [<>] ist NICHT in VFP 9 Format! - Bitte zuerst nach VFP 9 konvertieren mit MODIFY REPORT '<>'"
.C_REQUESTING_CAPITALIZATION_OF_FILE_LOC = "- Forder Großschreibung für Datei [<>] an"
- .C_SCANNING_FILE_AND_DIR_INFO_LOC = "Scannen Datei- und Verzeichnisinformationen für"
- .C_SOURCEFILE_LOC = "Source Datei: "
+ .C_SCANNING_FILE_AND_DIR_INFO_LOC = "Scanne Datei- und Verzeichnisinformationen für"
+ .C_SOURCEFILE_LOC = "Quell Datei: "
.C_SOURCESAFE_COMPATIBILITY_MODE_LOC = "Sourcesafe-Kompatibilitätsmodus"
.C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC = "Fehler in Verschachtelungsstruktur. ENDPROC erwartet, aber es wurde ENDDEFINE in Klasse <> (<>), Zeile <> der Datei <> gefunden"
.C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC = "Fehler in Verschachtelungsstruktur. ENDPROC wurde erwartet, aber es wurde ENDDEFINE in Klasse <> (<>.<>), Zeile <> der Datei <> gefunden"
.C_UNKNOWN_CLASS_NAME_LOC = "Unbekannte Klasse [<>]"
.C_USING_THIS_SETTINGS_LOC = "Mit dieser einstellung"
.C_WARNING_LOC = "WARNUNG!"
- .C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "WARNUNG!" + CR_LF+ "SICHERSTELLEN DAS KEIN TABELLENALIAS IN DEM INDEXAUSDRUCK BENUTZT WIRD!! (z.B.: index on <>.campo tag keyname)"
+ .C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "WARNUNG!" + CR_LF+ "STELLEN SIE SICHER, DAS KEIN TABELLENALIAS IM INDEXAUSDRUCK BENUTZT WIRD!! (z.B.: index on <>.campo tag keyname)"
.C_WITH_ERRORS_LOC = "mit Fehlern"
OTHERWISE && English (Inglés)
@@ -22660,7 +22793,7 @@ DEFINE CLASS CL_LANG AS Custom
.C_BACKLINK_OF_TABLE_LOC = "of table"
.C_BACKUP_OF_LOC = "Doing Backup of: "
.C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC = "Cannot generate file [<>] because it is ReadOnly"
- .C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "OPTIMIZATION: Base File [<>] already processed, skipping processing of file [<>]"
+ .C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "Optimization: Base File [<>] already processed, skipping processing of file [<>]"
.C_CONFIGFILE_LOC = "Using configuration file:"
.C_CONVERSION_CANCELLED_BY_USER_LOC = "Conversion Cancelled by the user"
.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC = "Convert all files in a Project"
@@ -22712,10 +22845,11 @@ DEFINE CLASS CL_LANG AS Custom
.C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* Names capitalization program [<>] not found"
.C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Object [<>] does not contain oReg object (level <>)"
.C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Operation not recognized. Only SETNAME and GETNAME allowed."
+ .C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "Optimization: skipping already processed file [<<(lcFile)>>]"
.C_OPTION_LOC = "Option"
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "The outer class does not match the inner classes"
- .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimization: Output file [<>] was not overwritten because it is the same as was generated."
- .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimization: Output file [<>] was not regenerated because it is newer than the inputfile."
+ .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimization: output file [<>] was not overwritten because it is the same as was generated."
+ .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimization: output file [<>] was not regenerated because it is newer than the inputfile."
.C_PRESS_ESC_TO_CANCEL = "Press Esc to Cancel"
.C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "Procedure not closed. Last line of code must be ENDPROC. [<>, Recno:<>]"
.C_PROCESSING_LOC = "Processing file"
diff --git a/foxbin2prg_de.h b/foxbin2prg_de.h
index aeb3074..a643af0 100644
--- a/foxbin2prg_de.h
+++ b/foxbin2prg_de.h
@@ -3,26 +3,26 @@
*-- NOTE: ES MÜSSEN ANFÜHRUNGSZEICHEN BENUTZT WERDEN, ODER SYNTAX ERRORS PASSIEREN BEIM COMPILE. SELTSAM :(
*-- FoxBin2Prg v1.19.38
*-------------------------------------------------------------------------------------------------------------------------------------------
-#DEFINE C_ASTERISK_EXT_NOT_ALLOWED_LOC "* und ? Erweiterungen sind nicht erlaubt, da es gefährlich ist (binaries könnten überschrieben werden mit xx2 leeren Dateien)"
-#DEFINE C_BACKLINK_CANT_UPDATE_BL_LOC "Backlink kann nicht geupdated werden"
+#DEFINE C_ASTERISK_EXT_NOT_ALLOWED_LOC "Die Erweiterungen * und ? sind nicht erlaubt, da sie gefährlich sind (Binaries könnten mit xx2 leeren Dateien überschrieben werden)"
+#DEFINE C_BACKLINK_CANT_UPDATE_BL_LOC "Backlink kann nicht aktualisiert werden"
#DEFINE C_BACKLINK_OF_TABLE_LOC "von Tabelle"
-#DEFINE C_BACKUP_OF_LOC "Mache Backup von: "
-#DEFINE C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC "Kann Datei [<>] nicht generieren da sie Schreibgeschützt ist"
+#DEFINE C_BACKUP_OF_LOC "Erzeuge Backup von: "
+#DEFINE C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC "Kann Datei [<>] nicht generieren, da sie schreibgeschützt ist"
#DEFINE C_CONFIGFILE_LOC "Benutze Konfigurationsdatei:"
#DEFINE C_CONVERSION_CANCELLED_BY_USER_LOC "Konvertierung durch den Benutzer abgebrochen"
-#DEFINE C_CONVERTER_UNLOAD_LOC "Konverter wird entladen"
+#DEFINE C_CONVERTER_UNLOAD_LOC "Konverter wird entladen" &&don't realy grok it even in english
#DEFINE C_CONVERTING_FILE_LOC "Konvertiere Datei"
-#DEFINE C_DATA_ERROR_CANT_PARSE_UNPAIRING_DOUBLE_QUOTES_LOC "Datenfehler: Keine Analyse möglich da ungepaarte Anführungszeichen in Zeile <>"
+#DEFINE C_DATA_ERROR_CANT_PARSE_UNPAIRING_DOUBLE_QUOTES_LOC "Datenfehler: Keine Analyse möglich, da ungepaarte Anführungszeichen in Zeile <> sind."
#DEFINE C_DUPLICATED_FILE_LOC "Doppelte Datei"
#DEFINE C_ENDDEFINE_MARKER_NOT_FOUND_LOC "Kann keinen Ende Marker [ENDDEFINE] in Zeile <> für die ID [<>] finden"
#DEFINE C_END_MARKER_NOT_FOUND_LOC "Kann keinen Ende Marker [<>] welcher den Start Marker [<>] in Zeile <> schließt"
-#DEFINE C_END_OF_PROCESS_LOC "Ende der Prozess"
+#DEFINE C_END_OF_PROCESS_LOC "Ende desr Prozesses"
#DEFINE C_FIELD_NOT_FOUND_ON_FILE_STRUCTURE_LOC "Feld [<>] nicht in der Struktur von Datei <> gefunden"
#DEFINE C_FILE_DOESNT_EXIST_LOC "Datei existiert nicht:"
#DEFINE C_FILE_NAME_IS_NOT_SUPPORTED_LOC "Datei [<<.c_InputFile>>] wird nicht unterstützt"
#DEFINE C_FILE_NOT_FOUND_LOC "Datei nicht gefunden"
-#DEFINE C_EXTENSION_RECONFIGURATION_LOC "Erweiterungsneukonfiguration:"
-#DEFINE C_EXTERNAL_CLASS_COUNT_DOES_NOT_MATCH_FOUND_CLASSES_LOC "Externe Klassenzahl (<< toModulo._ExternalClasses_Count >>) nicht gefunden Klassen entsprechen (<< toModulo._Clases_Count >>) für Datei [<< toFoxBin2Prg.c_InputFile >>]"
+#DEFINE C_EXTENSION_RECONFIGURATION_LOC " Nneukonfiguration der Erweiterungen:" &&wir wollen es mal nicht übertreiben, mit den zusammengesetzten Substantiven
+#DEFINE C_EXTERNAL_CLASS_COUNT_DOES_NOT_MATCH_FOUND_CLASSES_LOC "Die Anzahl externee Klassen (<< toModulo._ExternalClasses_Count >>) entspricht nicht der der gefunden Klassen (<< toModulo._Clases_Count >>), Datei: [<< toFoxBin2Prg.c_InputFile >>]"
#DEFINE C_EXTERNAL_CLASS_NAME_DOES_NOT_FOUND_LOC "Externe Klasse (<>) nicht in der Datei [<>] gefunden"
#DEFINE C_FOXBIN2PRG_ERROR_CAPTION_LOC "FOXBIN2PRG: FEHLER!!"
#DEFINE C_FOXBIN2PRG_INFO_SINTAX_LOC "FOXBIN2PRG: SYNTAX INFO"
@@ -31,26 +31,26 @@
+ " FOXBIN2PRG 'c:\development\classes\*.vcx' '0' '0' '0' '1' '1'" + CR_LF + CR_LF ;
+ "Ein Beispiel für die Generierung der TXT von allen VCX in 'c:\development\classes', ohne Anzeige des Fehlerfensters und ohne LOG datei: " + CR_LF ;
+ " FOXBIN2PRG 'c:\development\classes\*.vc2' '0' '0' '0' '1' '0'"
-#DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC "FOXBIN2PRG ist nur für Visual FoxPro 9.0!"
+#DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC "FOXBIN2PRG arbeitet nur für Visual FoxPro 9.0!"
#DEFINE C_FOXBIN2PRG_WARN_CAPTION_LOC "FOXBIN2PRG: WARNUNG!"
#DEFINE C_LANGUAGE_LOC "DE"
-#DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "Menu [<>] ist NICHT in VFP 9 Format! - Bitte zuerst nach VFP 9 konvertieren mit MODIFY MENU '<>'"
+#DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "Menu [<>] ist NICHT in VFP 9 Format! - Bitte zuerst mit MODIFY MENU '<>' nach VFP 9 konvertieren."
#DEFINE C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC "* Programm für Großschreibungssetzung [<>] gefunden"
#DEFINE C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC "* Programm für Großschreibungssetzung [<>] nicht gefunden"
-#DEFINE C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC "Objekt [<>] enthält nicht oReg Objekt (level <>)"
+#DEFINE C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC "Objekt [<>] enthält nicht das oReg Objekt (level <>)"
#DEFINE C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC "Befehl nicht erkannt. Nur SETNAME und GETNAME erlaubt."
-#DEFINE C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC "Optimierung: Ausgabedatei [<>] wurde nicht überschrieben da sie dieselbe ist wie die neu generierte."
-#DEFINE C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC "Optimierung: Ausgabedatei [<>] wurde nicht erneuert da sie neuer ist als die Ursprungsdatei."
-#DEFINE C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC "Procedur nicht geschlossen. Letzte Zeile des Codes muss ENDPROC sein. [<>, Recno:<>]"
+#DEFINE C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC "Optimierung: Ausgabedatei [<>] wurde nicht überschrieben, da sie dieselbe ist wie die neu generierte."
+#DEFINE C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC "Optimierung: Ausgabedatei [<>] wurde nicht erneuert, da sie neuer ist als die Ursprungsdatei."
+#DEFINE C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC "Prozcedur nicht geschlossen. Letzte Zeile des Codes muss ENDPROC sein. [<>, Recno:<>]"
#DEFINE C_PROCESSING_LOC "Bearbeite Datei"
#DEFINE C_PROCESS_PROGRESS_LOC "Bearbeitungsfortschritt:"
#DEFINE C_PROPERTY_NAME_NOT_RECOGNIZED_LOC "Eigenschaft [<>] nicht erkannt."
#DEFINE C_REPORT_NOT_IN_VFP9_FORMAT_LOC "Report [<>] ist NICHT in VFP 9 Format! - Bitte zuerst nach VFP 9 konvertieren mit MODIFY REPORT '<>'"
#DEFINE C_REQUESTING_CAPITALIZATION_OF_FILE_LOC "- Forder Großschreibung für Datei [<>] an"
-#DEFINE C_SCANNING_FILE_AND_DIR_INFO_LOC "Scannen Datei- und Verzeichnisinformationen für"
-#DEFINE C_SOURCEFILE_LOC "Source Datei: "
+#DEFINE C_SCANNING_FILE_AND_DIR_INFO_LOC "Scanne Datei- und Verzeichnisinformationen für"
+#DEFINE C_SOURCEFILE_LOC "Quell Datei: "
#DEFINE C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC "Fehler in Verschachtelungsstruktur. ENDPROC erwartet, aber es wurde ENDDEFINE in Klasse <> (<>), Zeile <> der Datei <> gefunden"
#DEFINE C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC "Fehler in Verschachtelungsstruktur. ENDPROC wurde erwartet, aber es wurde ENDDEFINE in Klasse <> (<>.<>), Zeile <> der Datei <> gefunden"
#DEFINE C_UNKNOWN_CLASS_NAME_LOC "Unbekannte Klasse [<>]"
-#DEFINE C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC "WARNUNG!!" + CR_LF+ "SICHERSTELLEN DAS KEIN TABELLENALIAS IN DEM INDEXAUSDRUCK BENUTZT WIRD!! (z.B.: index on <>.campo tag keyname)"
+#DEFINE C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC "WARNUNG!!" + CR_LF+ "STELLEN SIE SICHER, DAS KEIN TABELLENALIAS IM INDEXAUSDRUCK BENUTZT WIRD!! (z.B.: index on <>.campo tag keyname)"
#DEFINE C_WITH_ERRORS_LOC "mit Fehlern"