diff --git a/docs/ChangeLog.md b/docs/ChangeLog.md index dc9b973..169b959 100644 --- a/docs/ChangeLog.md +++ b/docs/ChangeLog.md @@ -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)
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) | diff --git a/foxbin2prg.prg b/foxbin2prg.prg index c2b1a89..40fa5aa 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -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) * * *--------------------------------------------------------------------------------------------------- @@ -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) * * *--------------------------------------------------------------------------------------------------- @@ -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!! *-------------------------------------------------------------------------------------------------------------------------------------------------------- - <> Version="<>" SourceFile="<>" <> (Solo para binarios VFP 9 / Only for VFP 9 binaries) + <> Version="<>" SourceFile="<>" CPID="<>" <> (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 @@ -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 + [] ; + [] ; + [] ; + + [] ; + [] 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 + [] ; + [] ; + [] ; + + [] ; + [] *-- 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 + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -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 + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -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 = [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -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 <<>> <> <<>> <> - <<>> <> + <<>> <> <<>> <> <<>> <> <<>> <> @@ -27837,6 +27948,7 @@ Define Class CL_MENU As CL_MENU_COL_BASE + [] ; + [] ; + [] ; + + [] ; + [] ; + [] @@ -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 (like .dbf.cfg) <<>> If OutFileName is not given, and a table is open a .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: .dbf.cfg in tables folder) + <<>> 5., optional Special settings per single DBF's Syntax: .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 (like .dbf.cfg) <<>> If OutFileName is not given, and a table is open a .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: .dbf.cfg in tables folder) + <<>> 5., optional Special settings per single DBF's Syntax: .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 für eine Tabellen-Config-Datei (wie .dbf.cfg) <<>> Wird OutFileName nicht angegeben und ist eine Tabelle offen, <<>> so wird eine Konfigurationsdatei .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: .dbf.cfg im Verzeichnis der Tabelle) + <<>> 5., optional Es können spezielle Einstellungen für einzelne DBF's erzeugt werden (Syntax: .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: .dbf.cfg im Verzeichnis der Tabelle) Defaults siehe FoxBin2prg.cfg + <<>>-- Individuelle DBF Konfigurations-Datei (Syntax: .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 (like .dbf.cfg) <<>> If OutFileName is not given, and a table is open a .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: .dbf.cfg in tables folder) + <<>> 5., optional Special settings per single DBF's Syntax: .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 - <<>> (<>) <><> <<.getValue()>> + <<>> (<>) <><> <<.getValue()>> ENDTEXT Else * Elemento de Array Bidimensional TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 - <<>> (<>,<>) <><> <<.getValue()>> + <<>> (<>,<>) <><> <<.getValue()>> ENDTEXT Endif @@ -33398,5 +33540,4 @@ Define Class CL_MEMVAR_RECORD As CL_CUS_BASE Endproc -Enddefine - +Enddefine \ No newline at end of file