Fixes for codepage

This commit is contained in:
Lutz
2023-08-20 16:02:59 +02:00
parent 6d132d6d89
commit 94e6cae626
2 changed files with 227 additions and 85 deletions

View File

@@ -27,7 +27,8 @@ _**Note:** you can click on the version number for downloading this version from
| Rel.Date | Developer | Version | Details |
| - | - | - | - |
| 2023/08/04 | LScheffler | [v1.19.79](https://github.com/fdbozzo/foxbin2prg/releases/tag/v1.19.79) | **Bug Fix**: Bin2Text: Forms with ole controls conversion error (also: any vcx) #95 (KestasL) |
| 2023/08/xx | LScheffler | [v1.19.79](https://github.com/fdbozzo/foxbin2prg/releases/tag/v1.19.79) | **Bug Fix**: Issues with form charsets ( national letters in form and controls Caption field) (KestasL) <br /> This fixes also: Forms with ole controls conversion error (also: any vcx) #95 (KestasL) |
| | | | **Enhancement**: Added option to return version number |
| 2023/03/20 | LScheffler | [v1.19.78](https://github.com/fdbozzo/foxbin2prg/releases/tag/v1.19.78) | **Enhancement**: Text2Bin on PJX errors out for projects with an attach icon that has a drive letter on its path. #93 (ericbarte) |
| | | | **Enhancement**: Documentation enhanced |
| 2023/03/16 | LScheffler | [v1.19.77](https://github.com/fdbozzo/foxbin2prg/releases/tag/v1.19.77) | **Bug Fix**: Bin2Txt Operation on VCX loses leading spaces in Property Values #90 (JoergSchneider) |

View File

@@ -304,7 +304,8 @@
* 16/03/2023 LScheffler v1.19.77 Bug Fix: Bin2Txt Operation on VCX loses leading spaces in Property Values #90 (JoergSchneider)
* 16/03/2023 LScheffler v1.19.77 Bug Fix: Txt2Bin Operation on VCX looses double ampersand in Property Values #91 (LScheffler)
* 20/03/2023 LScheffler v1.19.78 Enhancement: Text2Bin on PJX errors out for projects with an attach icon that has a drive letter on its path. #93 (ericbarte)
* 04/08/2023 LScheffler v1.19.79 Bug Fix: Bin2Text: Forms with ole controls conversion error (also: any vcx)
* 06/08/2023 LScheffler v1.19.79 Enhancement: Added option to return version number (KestasL)
* 20/08/2023 LScheffler v1.19.79 Bug Fix: codepage is lost on recreation, issue #96, fixes issue #95 (OLE) as well (KestasL)
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
*
*---------------------------------------------------------------------------------------------------
@@ -480,7 +481,8 @@
* 16/03/2023 JoergSchneider Bug REPORT v1.19.76 Bin2Txt Operation on VCX loses leading spaces in Property Values #90 (JoergSchneider)
* 16/03/2023 LScheffler Bug REPORT v1.19.76 Txt2Bin Operation on VCX looses double ampersand in Property Values #91 (LScheffler)
* 17/03/2023 ericbarte Bug REPORT v1.19.76 Text2Bin on PJX errors out for projects with an attach icon that has a drive letter on its path. #93 (ericbarte)
* 04/08/2023 KestasL Bug REPORT v1.19.78 Bin2Text: Forms with ole controls conversion error (also: any vcx)
* 04/08/2023 KestasL Bug REPORT v1.19.78 Bin2Text: Forms with ole controls conversion error issue #95 (also: any vcx) (KestasL)
* 04/08/2023 KestasL Bug REPORT v1.19.78 Codepage is lost on recreation, issue #96 (KestasL)
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
*
*---------------------------------------------------------------------------------------------------
@@ -533,6 +535,12 @@
* -t Create config template "tcType" for config-per-table file
* tcType (v! IN ) file to create
*---------------------------------------------------------------------------------------------------
*** LScheffler 2023-08-06: added option to output version number
* Usage 2
* PARAMETERS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
* tc_InputFile (c! IN ) Modus (case sensitive)
* -VERNO Return versio number (DC_FB2PRG_VERSION_REAL)
*---------------------------------------------------------------------------------------------------
Lparameters tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress, tcOriginalFileName ;
, tcRecompile, tcNoTimestamps, tcCFG_File, tcOutputFolder
@@ -772,6 +780,17 @@ Local lnResp, loEx As Exception
tc_InputFile = Evl(tc_InputFile,'')
tcType = Evl(tcType,'')
*!* Changed by: LScheffler 06.08.2023
*!* change date="{^2023-08-06,14:29:00}"
* added option to return version number
If Atc('-VERNO','-'+tc_InputFile) > 0
tc_InputFile = DC_FB2PRG_VERSION_REAL
RETURN DC_FB2PRG_VERSION_REAL
Endif &&Atc('-VERNO','-'+tc_InputFile) > 0
*!* /Changed by: LScheffler 06.08.2023
*!* Changed by: LScheffler 15.2.2021
*!* change date="{^2021-02-15,18:44:00}"
* added option to create config files
@@ -1123,7 +1142,10 @@ Define Class c_foxbin2prg As Session
*** DH 2021-03-04: added cOutputFolder and n_HomeDir properties
cOutputFolder = '' && the folder to write files to (blank = same folder as source file)
n_HomeDir = 1 && 0 = don't save HomeDir in PJ2, 1 = save HomeDir in PJ2
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
i_CPID = 0 &&CPCURRENT(1)
Procedure Init
Lparameters tcCFG_File, tcCancelWithEscKey
@@ -5262,12 +5284,14 @@ Define Class c_foxbin2prg As Session
lcText = ''
*-- Cabecera del PRG e inicio de DEF_CLASS
*SF 20230822
*issue #96, [KestasL] keep CodePage relavant information for binary sources, added CPID value
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (ES) AUTOGENERADO - ¡¡ATENCIÓN!! - ¡¡NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
<<C_FB2PRG_META_I>> Version="<<TRANSFORM(THIS.n_FB2PRG_Version)>>" SourceFile="<<LOWER( JUSTFNAME( EVL( THIS.c_OriginalFileName, THIS.c_InputFile ) ) )>>" <<C_FB2PRG_META_F>> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
<<C_FB2PRG_META_I>> Version="<<TRANSFORM(THIS.n_FB2PRG_Version)>>" SourceFile="<<LOWER( JUSTFNAME( EVL( THIS.c_OriginalFileName, THIS.c_InputFile ) ) )>>" CPID="<<THIS.i_CPID>>" <<C_FB2PRG_META_F>> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
ENDTEXT
@@ -7186,7 +7210,7 @@ Define Class c_conversor_base As Custom
* anywhere else it will respect this to,
* so it's in the general settings or not
* SET BLOCKSIZE TO 0
SET BLOCKSIZE TO 0
*!* /Changed by: LScheffler 21.02.2021
@@ -8991,8 +9015,6 @@ Define Class c_conversor_prg_a_bin As c_conversor_base
Endfunc
Procedure analyzeCodeBlock_FoxBin2Prg
*------------------------------------------------------
*-- Analiza el bloque <FOXBIN2PRG>
@@ -9009,6 +9031,9 @@ Define Class c_conversor_prg_a_bin As c_conversor_base
.get_ListNamesWithValuesFrom_InLine_MetadataTag( @tcLine, @laPropsAndValues, @lnPropsAndValues_Count, C_FB2PRG_META_I, C_FB2PRG_META_F )
toModulo._Version = .get_ValueByName_FromListNamesWithValues( 'Version', 'N', @laPropsAndValues )
toModulo._SourceFile = .get_ValueByName_FromListNamesWithValues( 'SourceFile', 'C', @laPropsAndValues )
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
toModulo._CPID = .get_ValueByName_FromListNamesWithValues( 'CPID', 'I', @laPropsAndValues )
Endwith
Endif
@@ -9042,13 +9067,16 @@ Define Class c_conversor_prg_a_bin As c_conversor_base
Procedure createProject
Lparameters tcTableOrCursor && 'TABLE' or 'CURSOR'
Lparameters toProject
Local lcCursorName
tcTableOrCursor = Evl( tcTableOrCursor, 'TABLE' )
lcCursorName = Icase( tcTableOrCursor = 'TABLE', This.c_OutputFile, 'TABLABIN' )
Local lcCodepage
Create &tcTableOrCursor. (lcCursorName) ;
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
lcCodepage = Str(toProject._CPID)
Create TABLE (This.c_OutputFile) ;
CODEPAGE = &lcCodepage. ;
( Name M ;
, Type C(1) ;
, Id N(10) ;
@@ -9078,9 +9106,9 @@ Define Class c_conversor_prg_a_bin As c_conversor_base
, Key C(32) ;
, User M )
If tcTableOrCursor = 'TABLE' Then
Use (This.c_OutputFile) Alias TABLABIN Again Shared
Endif
Use (This.c_OutputFile) Alias TABLABIN Again Shared
SET NOCPTRANS TO Name,OUTFILE,HomeDir,DEVINFO,SYMBOLS,Object,COMMENTS,RESERVED1,RESERVED2,SCCDATA,User
Endproc
@@ -9139,13 +9167,16 @@ Define Class c_conversor_prg_a_bin As c_conversor_base
Procedure createClasslib
Lparameters tcTableOrCursor && 'TABLE' or 'CURSOR'
Lparameters toModulo
Local lcCursorName
tcTableOrCursor = Evl( tcTableOrCursor, 'TABLE' )
lcCursorName = Icase( tcTableOrCursor = 'TABLE', This.c_OutputFile, 'TABLABIN' )
Local lcCodepage
Create &tcTableOrCursor. (lcCursorName) ;
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
lcCodepage = Str(toModulo._CPID)
Create TABLE (This.c_OutputFile) ;
CODEPAGE = &lcCodepage. ;
( PLATFORM C(8) ;
, UNIQUEID C(10) ;
, Timestamp N(10) ;
@@ -9170,9 +9201,10 @@ Define Class c_conversor_prg_a_bin As c_conversor_base
, RESERVED8 M ;
, User M )
If tcTableOrCursor = 'TABLE' Then
Use (This.c_OutputFile) Alias TABLABIN Again Shared
Endif
Use (This.c_OutputFile) Alias TABLABIN Again Shared
SET NOCPTRANS TO Class,CLASSLOC,BaseClass,OBJNAME,Parent,PROPERTIES,Protected,METHODS,OBJCODE,OLE,OLE2,;
RESERVED1,RESERVED2,RESERVED3,RESERVED4,RESERVED5,RESERVED6,RESERVED7,RESERVED8,User
Endproc
@@ -9201,13 +9233,16 @@ Define Class c_conversor_prg_a_bin As c_conversor_base
Procedure createForm
Lparameters tcTableOrCursor && 'TABLE' or 'CURSOR'
Lparameters toModulo
Local lcCursorName
tcTableOrCursor = Evl( tcTableOrCursor, 'TABLE' )
lcCursorName = Icase( tcTableOrCursor = 'TABLE', This.c_OutputFile, 'TABLABIN' )
Local lcCodepage
Create &tcTableOrCursor. (lcCursorName) ;
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
lcCodepage = Str(toModulo._CPID)
Create TABLE (This.c_OutputFile) ;
CODEPAGE = &lcCodepage. ;
( PLATFORM C(8) ;
, UNIQUEID C(10) ;
, Timestamp N(10) ;
@@ -9232,9 +9267,10 @@ Define Class c_conversor_prg_a_bin As c_conversor_base
, RESERVED8 M ;
, User M )
If tcTableOrCursor = 'TABLE' Then
Use (This.c_OutputFile) Alias TABLABIN Again Shared
Endif
Use (This.c_OutputFile) Alias TABLABIN Again Shared
SET NOCPTRANS TO CLASS,CLASSLOC,BASECLASS,OBJNAME,PARENT,PROPERTIES,PROTECTED,METHODS;
,OBJCODE,OLE,OLE2,RESERVED1,RESERVED2,RESERVED3,RESERVED4,RESERVED5,RESERVED6,RESERVED7,RESERVED8,USER
Endproc
@@ -9263,13 +9299,19 @@ Define Class c_conversor_prg_a_bin As c_conversor_base
Procedure createReport
Lparameters tcTableOrCursor && 'TABLE' or 'CURSOR'
Local lcCursorName
Lparameters tcTableOrCursor,toReport && 'TABLE' or 'CURSOR'
Local lcCursorName,lcCodepage
tcTableOrCursor = Evl( tcTableOrCursor, 'TABLE' )
lcCursorName = Icase( tcTableOrCursor = 'TABLE', This.c_OutputFile, 'TABLABIN' )
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
lcCodepage = Icase(ISNULL(toReport),Str(Cpcurrent()),Str(toReport._CPID))
Create &tcTableOrCursor. (lcCursorName) ;
CODEPAGE = &lcCodepage. ;
( 'PLATFORM' C(8) ;
, 'UNIQUEID' C(10) ;
, 'TIMESTAMP' N(10) ;
@@ -9348,20 +9390,27 @@ Define Class c_conversor_prg_a_bin As c_conversor_base
If tcTableOrCursor = 'TABLE' Then
Use (This.c_OutputFile) Alias TABLABIN Again Shared
Endif
ENDIF
SET NOCPTRANS TO NAME,EXPR,STYLE,PICTURE,ORDER,COMMENT,TAG,TAG2,FONTFACE,SUPEXPR,USER
Endproc
Procedure createMenu
Lparameters tcTableOrCursor && 'TABLE' or 'CURSOR'
Lparameters tcTableOrCursor,toMenu && 'TABLE' or 'CURSOR'
Local lcCursorName
Local lcCursorName,lcCodepage
tcTableOrCursor = Evl( tcTableOrCursor, 'TABLE' )
lcCursorName = Icase( tcTableOrCursor = 'TABLE', This.c_OutputFile, 'TABLABIN' )
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
lcCodepage = Icase(Isnull(toMenu),Str(Cpcurrent()),Str(toMenu._CPID))
Create &tcTableOrCursor. (lcCursorName) ;
CODEPAGE = &lcCodepage. ;
( 'OBJTYPE' Numeric(2) ;
, 'OBJCODE' Numeric(2) ;
, 'NAME' Memo ;
@@ -9390,7 +9439,10 @@ Define Class c_conversor_prg_a_bin As c_conversor_base
If tcTableOrCursor = 'TABLE' Then
Use (This.c_OutputFile) Alias TABLABIN Again Shared
Endif
ENDIF
SET NOCPTRANS TO NAME,PROMPT,COMMAND,MESSAGE,PROCEDURE,SETUP,CLEANUP,KEYNAME,KEYLABEL,SKIPFOR
Endproc
@@ -11623,11 +11675,11 @@ Define Class c_conversor_prg_a_vcx As c_conversor_prg_a_bin
If Adir( laFiles, toFoxBin2Prg.c_OutputFile, "", 1 ) = 1
Use (toFoxBin2Prg.c_OutputFile) Alias TABLABIN Again Shared
Else
.createClasslib()
.createClasslib(toModulo)
Endif
Else
toFoxBin2Prg.doBackup( .F., .T., '', '', '' )
.createClasslib()
.createClasslib(toModulo)
Endif
.writeBinaryFile( @toModulo, @toFoxBin2Prg, llReplaceClass )
@@ -12136,7 +12188,7 @@ Define Class c_conversor_prg_a_scx As c_conversor_prg_a_bin
toFoxBin2Prg.updateProcessedFile( lnIDInputFile )
.updateProgressbar( 'Generating Binary...', 0, lnCodeLines, 1 )
toFoxBin2Prg.doBackup( .F., .T., '', '', '' )
.createForm()
.createForm(toModulo)
.writeBinaryFile( @toModulo, @toFoxBin2Prg )
Endwith && THIS
@@ -12483,7 +12535,7 @@ Define Class c_conversor_prg_a_pjx As c_conversor_prg_a_bin
toFoxBin2Prg.updateProcessedFile( lnIDInputFile )
.updateProgressbar( 'Generating Binary...', 2, 2, 1 )
toFoxBin2Prg.doBackup( .F., .T., '', '', '' )
.createProject()
.createProject(toProject)
.writeBinaryFile( @toProject, @toFoxBin2Prg )
Endwith && THIS
@@ -13307,7 +13359,7 @@ Define Class c_conversor_prg_a_frx As c_conversor_prg_a_bin
C_FB2PRG_CODE = Filetostr( .c_InputFile )
lnCodeLines = Alines( laCodeLines, C_FB2PRG_CODE )
.createReport('CURSOR')
.createReport('CURSOR',toReport)
*-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte
.updateProgressbar( 'Identifying Code Blocks...', 1, 2, 1 )
@@ -13329,7 +13381,7 @@ Define Class c_conversor_prg_a_frx As c_conversor_prg_a_bin
toFoxBin2Prg.updateProcessedFile( lnIDInputFile )
.updateProgressbar( 'Generating Binary...', 2, 2, 1 )
toFoxBin2Prg.doBackup( .F., .T., '', '', '' )
.createReport()
.createReport(.F.,toReport)
.writeBinaryFile( @toReport, @toFoxBin2Prg )
Endwith && THIS
@@ -14782,7 +14834,7 @@ Define Class c_conversor_prg_a_mnx As c_conversor_prg_a_bin
C_FB2PRG_CODE = Filetostr( .c_InputFile )
lnCodeLines = Alines( laCodeLines, C_FB2PRG_CODE )
.createMenu('CURSOR')
.createMenu('CURSOR',toMenu )
*-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte
.updateProgressbar( 'Identifying Code Blocks...', 1, 2, 1 )
@@ -14804,7 +14856,7 @@ Define Class c_conversor_prg_a_mnx As c_conversor_prg_a_bin
toFoxBin2Prg.updateProcessedFile( lnIDInputFile )
.updateProgressbar( 'Generating Binary...', 1, 2, 1 )
toFoxBin2Prg.doBackup( .F., .T., '', '', '' )
.createMenu()
.createMenu(.F.,toMenu )
.writeBinaryFile( @toMenu, @toFoxBin2Prg )
Endwith && THIS
@@ -16863,6 +16915,7 @@ Define Class c_conversor_bin_a_prg As c_conversor_base
Endif
lnBytes = Strtofile( tcCodigo, tcOutputFile )
This.writeLog( C_TAB + C_TAB + '- ' + loLang.C_FILENAME_LOC + ': ' + tcOutputFile + ' (' + Alltrim(Transform(lnBytes/1024,'######.##')) + '/' + Alltrim(Transform(Len(tcCodigo)/1024,'######.##')) + ' KiB)' )
*THIS.writeLog( '- ' + loLang.C_GENERATED_FILE_SIZE_LOC )
@@ -16980,11 +17033,14 @@ Define Class c_conversor_vcx_a_prg As c_conversor_bin_a_prg
loLang = _Screen.o_FoxBin2Prg_Lang
With This As c_conversor_vcx_a_prg Of 'FOXBIN2PRG.PRG'
*SF 20230804
*issue #95, [Kestutis Laurinavicius] prevent change ole codepage
*set NOCPTRANS for the vcx
SET NOCPTRANS TO ole
Use (.c_InputFile) Shared Again Noupdate Alias _TABLAORIG
Use (.c_InputFile) Shared Again Noupdate Alias _TABLAORIG
*SF 20230820
*issue #96, including issue #95, [KestasL] keep CodePage relavant information for binary sources
toFoxBin2Prg.i_CPID = Cpdbf("_TABLAORIG")
SET NOCPTRANS TO Class,CLASSLOC,BaseClass,OBJNAME,Parent,PROPERTIES,Protected,METHODS,OBJCODE,OLE,OLE2,;
RESERVED1,RESERVED2,RESERVED3,RESERVED4,RESERVED5,RESERVED6,RESERVED7,RESERVED8,User
*/SF 20230820
If toFoxBin2Prg.n_UseClassPerFile = 0 Or Empty(toFoxBin2Prg.c_ClassToConvert) Then
*-- Exportar la librería entera a texto
@@ -16998,11 +17054,9 @@ Define Class c_conversor_vcx_a_prg As c_conversor_bin_a_prg
OR PLATFORM == 'COMMENT ' And Lower(OBJNAME) == toFoxBin2Prg.c_ClassToConvert
Endif
*set NOCPTRANS for the cursor
SET NOCPTRANS TO ole
*/SF 20230804
lnStepCount = 7
Use In (Select("_TABLAORIG"))
* Issue#17: Error, The Specified Key already exists (Kirides)
.ignoreCorruptedObjects('TABLABIN')
@@ -17362,14 +17416,16 @@ Define Class c_conversor_scx_a_prg As c_conversor_bin_a_prg
With This As c_conversor_scx_a_prg Of 'FOXBIN2PRG.PRG'
Use (.c_InputFile) Shared Again Noupdate Alias _TABLAORIG
*SF 20230804
*issue #95, [Kestutis Laurinavicius] prevent change ole codepage
*set NOCPTRANS for the scx
SET NOCPTRANS TO ole
*SF 20230820
*issue #96, including issue #95, [KestasL] keep CodePage relavant information for binary sources
toFoxBin2Prg.i_CPID = Cpdbf("_TABLAORIG")
SET NOCPTRANS TO CLASS,CLASSLOC,BASECLASS,OBJNAME,PARENT,PROPERTIES,PROTECTED,METHODS;
,OBJCODE,OLE,OLE2,RESERVED1,RESERVED2,RESERVED3,RESERVED4,RESERVED5,RESERVED6,RESERVED7,RESERVED8,USER
*/SF 20230820
Select _TABLAORIG.*,Recno() regnum From _TABLAORIG Into Cursor TABLABIN Readwrite
*set NOCPTRANS for the cursor
SET NOCPTRANS TO ole
*/SF 20230804
Use In (Select("_TABLAORIG"))
* Issue#15: Ignorar objetos mal definidos
@@ -18077,6 +18133,13 @@ toFoxBin2Prg.n_CheckFileInPath=2
With This As c_conversor_pjx_a_prg Of 'FOXBIN2PRG.PRG'
Use (.c_InputFile) Shared Again Noupdate Alias _TABLAORIG
*SF 20230820
*issue #96, including issue #95, [KestasL] keep CodePage relavant information for binary sources
toFoxBin2Prg.i_CPID = Cpdbf("_TABLAORIG")
SET NOCPTRANS TO Name,OUTFILE,HomeDir,DEVINFO,SYMBOLS,Object,COMMENTS,RESERVED1,RESERVED2,SCCDATA,User
*/SF, 20230820
Select * From _TABLAORIG Into Cursor TABLABIN
Use In (Select("_TABLAORIG"))
@@ -18699,7 +18762,14 @@ Define Class c_conversor_frx_a_prg As c_conversor_bin_a_prg
Store '' To laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1)
Store Null To loRegObj, loRegCab, loRegDataEnv, loRegCur
Use (.c_InputFile) Shared Again Noupdate Alias _TABLAORIG
Use (.c_InputFile) Shared Again Noupdate Alias _TABLAORIG
*SF 20230820
*issue #96, including issue #95, [KestasL] keep CodePage relavant information for binary sources
toFoxBin2Prg.i_CPID = Cpdbf("_TABLAORIG")
SET NOCPTRANS TO NAME,EXPR,STYLE,PICTURE,ORDER,COMMENT,TAG,TAG2,FONTFACE,SUPEXPR,USER
*/SF, 20230820
This.updateProgressbar( 'Scanning FRX...', 1, 2, 1 )
*-- Verificación de REPORTE VFP 9
@@ -18962,6 +19032,10 @@ Define Class c_conversor_dbf_a_prg As c_conversor_bin_a_prg
Endif
* LScheffler
Use (.c_InputFile) Shared Again Noupdate Alias TABLABIN
*SF 20230820
*issue #96, including issue #95, [KestasL] keep CodePage relavant information for binary sources
toFoxBin2Prg.i_CPID = Cpdbf("TABLABIN")
lnDataSessionID = toFoxBin2Prg.DataSessionId
.RestoreDBCEvents(loDBC, @llDBCEventsEnabled)
@@ -19145,6 +19219,12 @@ Define Class c_conversor_dbc_a_prg As c_conversor_bin_a_prg
lnDatabases_Count = Adatabases(laDatabases)
Use (.c_InputFile) Shared Again Noupdate Alias TABLABIN
*SF 20230820
*issue #96, including issue #95, [KestasL] keep CodePage relavant information for binary sources
toFoxBin2Prg.i_CPID = Cpdbf("TABLABIN")
SET NOCPTRANS TO OBJECTNAME,USER
*/SF, 20230820
If toFoxBin2Prg.l_ProcessFiles Then
toDatabase = Createobject('CL_DBC')
toDatabase._DBC = .c_InputFile
@@ -19336,6 +19416,14 @@ Define Class c_conversor_mnx_a_prg As c_conversor_bin_a_prg
Store 0 To lnCodError
Use (.c_InputFile) Shared Again Noupdate Alias _TABLAORIG
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
toFoxBin2Prg.i_CPID = Cpdbf("_TABLAORIG")
SET NOCPTRANS TO NAME,PROMPT,COMMAND,MESSAGE,PROCEDURE,SETUP,CLEANUP,KEYNAME,KEYLABEL,SKIPFOR
*/SF, 20230820
Select * From _TABLAORIG Into Cursor TABLABIN
Use In (Select("_TABLAORIG"))
.updateProgressbar( 'Analyzing MNX...', 1, 2, 1 )
@@ -19967,12 +20055,16 @@ Define Class CL_CLASSLIB As CL_CUS_BASE
+ [<memberdata name="_ole_objs" display="_Ole_Objs"/>] ;
+ [<memberdata name="_sourcefile" display="_SourceFile"/>] ;
+ [<memberdata name="_version" display="_Version"/>] ;
+ [<memberdata name="_cpid" display="_CPID"/>] ;
+ [</VFPData>]
Dimension _Ole_Objs[1], _Clases[1], _ExternalClasses(1,2)
_Version = 0
_SourceFile = ''
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
_cpid = Cpcurrent()
_ExternalClasses_Count = 0
_Ole_Obj_count = 0
_Clases_Count = 0
@@ -20384,12 +20476,16 @@ Define Class CL_REPORT As CL_COL_BASE
+ [<memberdata name="_timestamp" display="_TimeStamp"/>] ;
+ [<memberdata name="_version" display="_Version"/>] ;
+ [<memberdata name="_sourcefile" display="_SourceFile"/>] ;
+ [<memberdata name="_cpid" display="_CPID"/>] ;
+ [</VFPData>]
*-- Report.Info
_TimeStamp = 0
_Version = ''
_SourceFile = ''
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
_cpid = Cpcurrent()
Enddefine
@@ -20417,6 +20513,7 @@ Define Class CL_PROJECT As CL_COL_BASE
+ [<memberdata name="_serverinfo" display="_ServerInfo"/>] ;
+ [<memberdata name="_serverhead" display="_ServerHead"/>] ;
+ [<memberdata name="_sourcefile" display="_SourceFile"/>] ;
+ [<memberdata name="_cpid" display="_CPID"/>] ;
+ [<memberdata name="_timestamp" display="_TimeStamp"/>] ;
+ [<memberdata name="_version" display="_Version"/>] ;
+ [<memberdata name="_sccdata" display="_SccData"/>] ;
@@ -20469,6 +20566,9 @@ Define Class CL_PROJECT As CL_COL_BASE
_ServerHead = Null
_ServerInfo = ''
_SourceFile = ''
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
_cpid = Cpcurrent()
_TimeStamp = 0
_Version = ''
_SccData = ''
@@ -21933,6 +22033,7 @@ Define Class CL_DBC As CL_DBC_BASE
+ [<memberdata name="_views" display="_Views"/>] ;
+ [<memberdata name="_relations" display="_Relations"/>] ;
+ [<memberdata name="_sourcefile" display="_SourceFile"/>] ;
+ [<memberdata name="_cpid" display="_CPID"/>] ;
+ [<memberdata name="_storedprocedures" display="_StoredProcedures"/>] ;
+ [<memberdata name="_version" display="_Version"/>] ;
+ [<memberdata name="_externalclasses" display="_ExternalClasses"/>] ;
@@ -21949,6 +22050,10 @@ Define Class CL_DBC As CL_DBC_BASE
_Members_Count = 0
_Version = 0
_SourceFile = ''
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
_cpid = Cpcurrent()
*-- Database Info
_Name = ''
@@ -23616,19 +23721,21 @@ Define Class CL_DBC_FIELD_DB As CL_DBC_BASE
Procedure read_BinDataToProperties
Lparameters tcTable, tcField
Local lcFullFieldName
With This As CL_DBC_FIELD_DB Of 'FOXBIN2PRG.PRG'
If Not ._Saved Then
._Name = Alltrim(tcField)
._Caption = DBGetProp( Rtrim(tcTable) + '.' + Rtrim(tcField),"FIELD","Caption")
._Comment = DBGetProp( Rtrim(tcTable) + '.' + Rtrim(tcField),"FIELD","Comment")
._DefaultValue = DBGetProp( Rtrim(tcTable) + '.' + Rtrim(tcField),"FIELD","DefaultValue")
._DisplayClass = DBGetProp( Rtrim(tcTable) + '.' + Rtrim(tcField),"FIELD","DisplayClass")
._DisplayClassLibrary = DBGetProp( Rtrim(tcTable) + '.' + Rtrim(tcField),"FIELD","DisplayClassLibrary")
._Format = DBGetProp( Rtrim(tcTable) + '.' + Rtrim(tcField),"FIELD","Format")
._InputMask = DBGetProp( Rtrim(tcTable) + '.' + Rtrim(tcField),"FIELD","InputMask")
._RuleExpression = DBGetProp( Rtrim(tcTable) + '.' + Rtrim(tcField),"FIELD","RuleExpression")
._RuleText = DBGetProp( Rtrim(tcTable) + '.' + Rtrim(tcField),"FIELD","RuleText")
lcFullFieldName = Rtrim(tcTable) + '.' + Rtrim(tcField)
._Caption = DBGetProp( lcFullFieldName,"FIELD","Caption")
._Comment = DBGetProp( lcFullFieldName,"FIELD","Comment")
._DefaultValue = DBGetProp( lcFullFieldName,"FIELD","DefaultValue")
._DisplayClass = DBGetProp( lcFullFieldName,"FIELD","DisplayClass")
._DisplayClassLibrary = DBGetProp( lcFullFieldName,"FIELD","DisplayClassLibrary")
._Format = DBGetProp( lcFullFieldName,"FIELD","Format")
._InputMask = DBGetProp( lcFullFieldName,"FIELD","InputMask")
._RuleExpression = DBGetProp( lcFullFieldName,"FIELD","RuleExpression")
._RuleText = DBGetProp( lcFullFieldName,"FIELD","RuleText")
*--
._Saved = .T.
Endif
@@ -25441,6 +25548,7 @@ Define Class CL_DBF_TABLE As CL_CUS_BASE
_MemberData = [<VFPData>] ;
+ [<memberdata name="_codepage" display="_CodePage"/>] ;
+ [<memberdata name="_cpid" display="_CPID"/>] ;
+ [<memberdata name="_database" display="_Database"/>] ;
+ [<memberdata name="_filetype" display="_FileType"/>] ;
+ [<memberdata name="_filetype_descrip" display="_FileType_Descrip"/>] ;
@@ -25461,6 +25569,9 @@ Define Class CL_DBF_TABLE As CL_CUS_BASE
*-- Modulo
_Version = 0
_SourceFile = ''
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
_cpid = Cpcurrent()
_I = 0
*-- Table Info
@@ -25636,7 +25747,7 @@ Define Class CL_DBF_TABLE As CL_CUS_BASE
<<>>
<<C_TABLE_I>>
<<>> <MemoFile><<IIF( tl_FileHasMemo, FORCEEXT(tc_InputFile, 'FPT'), '' )>></MemoFile>
<<>> <CodePage><<CPDBF('TABLABIN')>></CodePage>
<<>> <CodePage><<Cpdbf('TABLABIN')>></CodePage>
<<>> <LastUpdate><<IIF( toFoxBin2Prg.l_ClearDBFLastUpdate, '', LUPDATE('TABLABIN') )>></LastUpdate>
<<>> <Database><<tc_DBC_Name>></Database>
<<>> <FileType><<TRANSFORM(tn_HexFileType, '@0')>></FileType>
@@ -27837,6 +27948,7 @@ Define Class CL_MENU As CL_MENU_COL_BASE
+ [<memberdata name="analyzecodeblock_setupcode" display="analyzeCodeBlock_SetupCode"/>] ;
+ [<memberdata name="updatemenu_recursivo" display="UpdateMenu_Recursivo"/>] ;
+ [<memberdata name="_sourcefile" display="_SourceFile"/>] ;
+ [<memberdata name="_cpid" display="_CPID"/>] ;
+ [<memberdata name="_version" display="_Version"/>] ;
+ [</VFPData>]
@@ -27844,6 +27956,9 @@ Define Class CL_MENU As CL_MENU_COL_BASE
*-- Modulo
_Version = 0
_SourceFile = ''
*SF 20230820
*issue #96, [KestasL] keep CodePage relavant information for binary sources
_cpid = Cpcurrent()
Procedure analyzeCodeBlock
@@ -30901,7 +31016,6 @@ Define Class CL_LANG As Custom
<<>>cNoTimestamps: Indicates if timestamp of several file types must be cleared ('1' or empty) or not ('0')
<<>>cCFG_File: Indicates a CFG filename for not using the default on foxbin2prg directory
<<>>cOutputFolder: The output folder to write to. If it isn't specified, the same folder as the source is used.
<<>>
<<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<<>>
<<>>FOXBIN2PRG.EXE [c|C|t [OutFileName]]
@@ -30914,6 +31028,13 @@ Define Class CL_LANG As Custom
<<>> If OutFileName is not given a FoxBin2Prg._cfg config file will be created at default folder
<<>>-t (t) Creates a template table-config-file <OutFileName> (like <Tablename>.dbf.cfg)
<<>> If OutFileName is not given, and a table is open a <Tablename>.dbf._cfg config file will be created at table folder.
<<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<<>>
<<>>FOXBIN2PRG.EXE [VERNO]
<<>>DO FOXBIN2PRG.EXE WITH [VERNO]
<<>>
<<>>-- Parameter details:
<<>>-VERNO (VERNO) Return version number of FoxBin2Prg
<<>>
<<>>
ENDTEXT
@@ -30930,7 +31051,7 @@ Define Class CL_LANG As Custom
<<>> 2., optional FOXBIN2PRG.CFG in folder of FOXBIN2PRG.EXE
<<>> 3., optional FOXBIN2PRG.CFG in root of working directory
<<>> 4., optional FOXBIN2PRG.CFG in every folder up to the working directory
<<>> 5., optional Special settings per single DBF's Syntax: <Tabellenname>.dbf.cfg in tables folder)
<<>> 5., optional Special settings per single DBF's Syntax: <TableName>.dbf.cfg in tables folder)
<<>> 6., Parameter calling FOXBIN2PRG.EXE.
<<>>
<<>> Some Parameter calling FOXBIN2PRG.EXE overturn this settings (except Defaults)
@@ -31190,7 +31311,6 @@ Define Class CL_LANG As Custom
<<>>cNoTimestamps: Indica si se debe anular el timestamp ('1' o vacío) o no ('0')
<<>>cCFG_File: Indica un nombre de archivo CFG para no usar el predeterminado en el directorio de foxbin2prg
<<>>cOutputFolder: The output folder to write to. If it isn't specified, the same folder as the source is used.
<<>>
<<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<<>>
<<>>FOXBIN2PRG.EXE [c|C|t [OutFileName]]
@@ -31203,6 +31323,14 @@ Define Class CL_LANG As Custom
<<>> If OutFileName is not given a FoxBin2Prg._cfg config file will be created at default folder
<<>>-t (t) Creates a template table-config-file <OutFileName> (like <Tablename>.dbf.cfg)
<<>> If OutFileName is not given, and a table is open a <Tablename>.dbf._cfg config file will be created at table folder.
<<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<<>>
<<>>FOXBIN2PRG.EXE [VERNO]
<<>>DO FOXBIN2PRG.EXE WITH [VERNO]
<<>>
<<>>-- Parameter details:
<<>>-VERNO (VERNO) Return version number of FoxBin2Prg
<<>>
<<>>
ENDTEXT
*** DH 2021-03-04: added HomeDir to text
@@ -31218,7 +31346,7 @@ Define Class CL_LANG As Custom
<<>> 2., optional FOXBIN2PRG.CFG in folder of FOXBIN2PRG.EXE
<<>> 3., optional FOXBIN2PRG.CFG in root of working directory
<<>> 4., optional FOXBIN2PRG.CFG in every folder up to the working directory
<<>> 5., optional Special settings per single DBF's Syntax: <Tabellenname>.dbf.cfg in tables folder)
<<>> 5., optional Special settings per single DBF's Syntax: <TableName>.dbf.cfg in tables folder)
<<>> 6., Parameter calling FOXBIN2PRG.EXE.
<<>>
<<>> Some Parameter calling FOXBIN2PRG.EXE overturn this settings (except Defaults)
@@ -31491,6 +31619,14 @@ Define Class CL_LANG As Custom
<<>>-t (t) Erzeugt eine Vorlage <OutFileName> für eine Tabellen-Config-Datei (wie <Tabellenname>.dbf.cfg)
<<>> Wird OutFileName nicht angegeben und ist eine Tabelle offen,
<<>> so wird eine Konfigurationsdatei <Tabellenname>.dbf._cfg im Verzeichnis der Tabelle angelegt.
<<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<<>>
<<>>FOXBIN2PRG.EXE [VERNO]
<<>>DO FOXBIN2PRG.EXE WITH [VERNO]
<<>>
<<>>-- Parameter:
<<>>-VERNO (VERNO) Debe dies Versionnummer zurück.
<<>>
<<>>
ENDTEXT
*** DH 2021-03-04: added HomeDir to text
@@ -31506,7 +31642,7 @@ Define Class CL_LANG As Custom
<<>> 2., optional FOXBIN2PRG.CFG im Vereichnis aus dem FOXBIN2PRG.EXE startet
<<>> 3., optional FOXBIN2PRG.CFG in der Wurzel des Arbeitsverzeichnises
<<>> 4., optional FOXBIN2PRG.CFG in jedem Verzeichnis bis zum Arbeitsverzeichnis
<<>> 5., optional Es können spezielle Einstellungen für einzelne DBF's erzeugt werden (Syntax: <Tabellenname>.dbf.cfg im Verzeichnis der Tabelle)
<<>> 5., optional Es können spezielle Einstellungen für einzelne DBF's erzeugt werden (Syntax: <TableName>.dbf.cfg im Verzeichnis der Tabelle)
<<>> 6., Parameter des Aufrufs von FOXBIN2PRG.EXE.
<<>>
<<>> Einige Parameter im Aufruf von FOXBIN2PRG.EXE übersteueren diese Vorgaben (bis auf die Defaults)
@@ -31637,7 +31773,7 @@ Define Class CL_LANG As Custom
ENDTEXT
TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_tab_cfg TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
<<>>################################################################################################################
<<>>-- Individual DBF configuration file (Syntax: <Tabellenname>.dbf.cfg im Verzeichnis der Tabelle) Defaults siehe FoxBin2prg.cfg
<<>>-- Individuelle DBF Konfigurations-Datei (Syntax: <Tabellenname>.dbf.cfg im Verzeichnis der Tabelle) Defaults siehe FoxBin2prg.cfg
<<>>Version: <<_Screen.c_FB2PRG_EXE_Version>>
<<>>****************************************************************************************************************
<<>>
@@ -31791,7 +31927,6 @@ Define Class CL_LANG As Custom
<<>>cNoTimestamps: Indicates if timestamp of several file types must be cleared ('1' or empty) or not ('0')
<<>>cCFG_File: Indicates a CFG filename for not using the default on foxbin2prg directory
<<>>cOutputFolder: The output folder to write to. If it isn't specified, the same folder as the source is used.
<<>>
<<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<<>>
<<>>FOXBIN2PRG.EXE [c|C|t [OutFileName]]
@@ -31804,6 +31939,13 @@ Define Class CL_LANG As Custom
<<>> If OutFileName is not given a FoxBin2Prg._cfg config file will be created at default folder
<<>>-t (t) Creates a template table-config-file <OutFileName> (like <Tablename>.dbf.cfg)
<<>> If OutFileName is not given, and a table is open a <Tablename>.dbf._cfg config file will be created at table folder.
<<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<<>>
<<>>FOXBIN2PRG.EXE [VERNO]
<<>>DO FOXBIN2PRG.EXE WITH [VERNO]
<<>>
<<>>-- Parameter details:
<<>>-VERNO (VERNO) Return version number of FoxBin2Prg
<<>>
<<>>
ENDTEXT
@@ -31820,7 +31962,7 @@ Define Class CL_LANG As Custom
<<>> 2., optional FOXBIN2PRG.CFG in folder of FOXBIN2PRG.EXE
<<>> 3., optional FOXBIN2PRG.CFG in root of working directory
<<>> 4., optional FOXBIN2PRG.CFG in every folder up to the working directory
<<>> 5., optional Special settings per single DBF's Syntax: <Tabellenname>.dbf.cfg in tables folder)
<<>> 5., optional Special settings per single DBF's Syntax: <TableName>.dbf.cfg in tables folder)
<<>> 6., Parameter calling FOXBIN2PRG.EXE.
<<>>
<<>> Some Parameter calling FOXBIN2PRG.EXE overturn this settings (except Defaults)
@@ -33372,13 +33514,13 @@ Define Class CL_MEMVAR_RECORD As CL_CUS_BASE
If pnCols = 0
* Elemento de Array Unidimensional
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
<<>> (<<STR(pnElement,5)>>) <<lcVarType>><<lcPrecision>> <<.getValue()>>
<<>> (<<Str(pnElement,5)>>) <<lcVarType>><<lcPrecision>> <<.getValue()>>
ENDTEXT
Else
* Elemento de Array Bidimensional
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
<<>> (<<STR(CEILING(pnElement/pnCols),5)>>,<<STR(EVL( MOD(pnElement,pnCols), pnCols),5)>>) <<lcVarType>><<lcPrecision>> <<.getValue()>>
<<>> (<<Str(CEILING(pnElement/pnCols),5)>>,<<Str(EVL( MOD(pnElement,pnCols), pnCols),5)>>) <<lcVarType>><<lcPrecision>> <<.getValue()>>
ENDTEXT
Endif
@@ -33398,5 +33540,4 @@ Define Class CL_MEMVAR_RECORD As CL_CUS_BASE
Endproc
Enddefine
Enddefine