diff --git a/Create_FoxBin2Prg.cfg b/Create_FoxBin2Prg.cfg index c7daeac..b87256a 100644 --- a/Create_FoxBin2Prg.cfg +++ b/Create_FoxBin2Prg.cfg @@ -1,6 +1,6 @@ *################################################################################################################ *FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS) -*Version: v1.20.00 +*Version: v1.21.04 *Options for project FoxBin2Prg * *This file declares ALL settings to create / recreate text files, @@ -140,7 +140,7 @@ PRG_Compat_Level: 0 && 0=Legacy, 1=Use HELPSTRING as Class Procedure *---------------------------------------------------------------------------------------------------------------- *-- PJX special -BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo +BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo, 2 = Don't keep DevInfo or ObjRev *---------------------------------------------------------------------------------------------------------------- *-- DBF special diff --git a/FOXBIN2PRG.DBF.CFG.TXT b/FOXBIN2PRG.DBF.CFG.TXT index bcddcd7..d0f5029 100644 --- a/FOXBIN2PRG.DBF.CFG.TXT +++ b/FOXBIN2PRG.DBF.CFG.TXT @@ -1,6 +1,6 @@ *################################################################################################################ *-- Individual DBF configuration file (syntax: filename.dbf.cfg) Defaults see FoxBin2prg.cfg -*Version: v1.21.03 +*Version: v1.21.04 ***************************************************************************************************************** *DBF_Conversion_Support: <0,1,2,4,8> && 0=No support, 1=Generate Header TXT only (Diff), 2=Generate Header TXT and BIN (Merge/Only Structure!), 4=Generate TXT with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data) diff --git a/README.md b/README.md index 3c6531a..70fa61e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # FoxBin2Prg -## Version 1.21.03 +## Version 1.21.04 **Binary/Text Converting program for Microsoft Visual FoxPro** ## Lutz Scheffler @@ -175,4 +175,4 @@ If you like to see Fernando's blog, or value his work: ---- -Last changed: _2024/02/24_ ![Picture](./docs/pictures/vfpxpoweredby_alternative.gif) +Last changed: _2024/08/26_ ![Picture](./docs/pictures/vfpxpoweredby_alternative.gif) diff --git a/ThorUpdater/FoxBin2Prg.zip b/ThorUpdater/FoxBin2Prg.zip index 89febce..14f8b5f 100644 Binary files a/ThorUpdater/FoxBin2Prg.zip and b/ThorUpdater/FoxBin2Prg.zip differ diff --git a/ThorUpdater/FoxBin2PrgVersion.txt b/ThorUpdater/FoxBin2PrgVersion.txt index 8b28e0a..7cfcba8 100644 --- a/ThorUpdater/FoxBin2PrgVersion.txt +++ b/ThorUpdater/FoxBin2PrgVersion.txt @@ -3,8 +3,8 @@ lparameters toUpdateObject * Set the properties of the passed updater object. with toUpdateObject - .VersionNumber = '1.21.03 - 20240424' - .AvailableVersion = 'FoxBin2PRG-1.21.03-update-20240424' + .VersionNumber = '1.21.04 - 20240826' + .AvailableVersion = 'FoxBin2PRG-1.21.04-update-20240826' .Notes = GetNotes() .RegisterWithThor = GetRegisterWithThor() endwith @@ -63,4 +63,4 @@ text to lcCommand noshow endtext return lcCommand -*created by VFPX Deployment, 24.04.2024 16:40:08 \ No newline at end of file +*created by VFPX Deployment, 08/26/2024 2:08:42 PM \ No newline at end of file diff --git a/docs/ChangeLog.md b/docs/ChangeLog.md index d0e0d49..ee1a48e 100644 --- a/docs/ChangeLog.md +++ b/docs/ChangeLog.md @@ -27,6 +27,7 @@ _**Note:** you can click on the version number for downloading this version from | Rel.Date | Developer | Version | Details | | - | - | - | - | +| 2024/08/26 | DHennig | v1.21.04 | **Enhancement**: Added support for BodyDevInfo = 2 in CFG file to prevent both DevInfo and ObjRev from being written to PJ2 file | | 2024/04/24 | LScheffler | [v1.21.03](https://github.com/fdbozzo/foxbin2prg/releases/tag/v1.21.03) | **Bug Fix**: Text To Bin with Fieldcaption = "NULL" (misnomer. it's the field name); #106; #106 (griessbach14943) | | 2024/01/03 | LScheffler | [v1.21.02](https://github.com/fdbozzo/foxbin2prg/releases/tag/v1.21.02) | **Bug Fix**: Problems regenerating single classes and forms from text files in class-per-file form; #105 (LScheffler) | | 2023/11/19 | LScheffler | [v1.21.01](https://github.com/fdbozzo/foxbin2prg/releases/tag/v1.21.01) | **Enhancement**: Source files not longer included in Thor. The file you will found are old and will be removed with subsequent installs. (LScheffler) | @@ -449,4 +450,4 @@ _**Note:** you can click on the version number for downloading this version from This project is part of [VFPX](https://vfpx.github.io/). ---- -Last changed: _2024/04/24_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +Last changed: _2024/08/26_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/docs/FoxBin2Prg_Internals.md b/docs/FoxBin2Prg_Internals.md index a91c7e5..894482c 100644 --- a/docs/FoxBin2Prg_Internals.md +++ b/docs/FoxBin2Prg_Internals.md @@ -36,7 +36,7 @@ As far as possible these are the original documents. Changes are added where fun - [Complementary options for the UseClassPerFile setting](#complementary-options-for-the-useclassperfile-setting) - [RedirectClassPerFileToMain](#redirectclassperfiletomain) - [ClassPerFileCheck](#classperfilecheck) - - [Create File-Per-Form](create_file_per_form) + - [Create File-Per-Form](#create-file-per-form) - [Create File-Per-DBC](#create-file-per-dbc) - [Complementary options for the UseFilesPerDBC setting](#complementary-options-for-the-usefilesperdbc-setting) - [RedirectFilePerDBCToMain](#redirectfileperdbctomain) @@ -114,6 +114,7 @@ These are the FoxBin2Prg.cfg configuration file settings and their meaning: | Debug | _0_, 1, 2 | 0=Off
1=Normal
2=Extended
By default, don't generate individual \.Log with process hints.
Activate with "1" to find possible error causes and for debugging,
"2" is special logging.
**If cDebug is set via parameter, this is ignored.** | | BackgroundImage | \ | Backgroundimage for process form | | HomeDir | 0, _1_ | 0=don't save HomeDir in PJ2,
1=save HomeDir in PJ2.
Setting this to 0 prevents the PJ2 file from changing just because two developers have the project in different folders | +| BodyDevInfo | _0_, 1, 2 | 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo, 2 = Don't keep DevInfo or ObjRev.
Setting this to 2 prevents the PJ2 file from changing just because two developers built the project on their machines | ||| | InhibitInheritance | _0_, 1, 2, 3 | **This settings is for config file via parameter only**
Settings for config file via parameter only0=Allow scanning "regular" config files (file via parameter is just additional default)
1=Only read tree from root of the file given by parameter, not FoxBin2Prg default
2=Only read folder and subfolder of the file given by parameter
3=Read no other file
This is like
0 Default \| Parameter file \| Default near FoxBin2Prg \| all other config files
1 Default \| Parameter file \| Inheritance from root to parent of folder \| folder and subdirs
2 Default \| Parameter file \| folder and subdirs
3 Default \| Parameter file | ||| @@ -141,10 +142,9 @@ These are the FoxBin2Prg.cfg configuration file settings and their meaning: | | | 2=creates / refresh class in file.VCX and do not touch other classes of file.VCX | | [ClassPerFileCheck](#classperfilecheck) | _0_, 1 | 0=Don't check file.class.vc2 inclusion,
1=Check file.class.vc2 inclusion
Only used if import file is in file[.baseclass].class.tx2 syntax.
Ignored for RedirectClassType: 2 | ||| -| [UseFormSettings](create_file_per_form) - | _0_, 1 | 0=Old Style, like the class settings
1=Form style, special for form
This controls the use of the _UseFormPerFile_, _RedirectFormPerFileToMain_, _RedirectFormType_ and _FormPerFileCheck_ options.
Only if this option is set, the options will be read. | +| [UseFormSettings](#create-file-per-form) | _0_, 1 | 0=Old Style, like the class settings
1=Form style, special for form
This controls the use of the _UseFormPerFile_, _RedirectFormPerFileToMain_, _RedirectFormType_ and _FormPerFileCheck_ options.
Only if this option is set, the options will be read. | | UseFormPerFile | _0_, 1, 2 | 0=One library _Text_ file,
1=Multiple Form.Object.sc2 files,
2=Multiple Form.baseclass.Object.sc2 files
See [Create Class-Per-File](#create-class-per-file) | -| [RedirectFormPerFileToMain:](#redirectclassperfiletomain:) | _0_, 1 | 0=Don't redirect to Form.scx,
1=Redirect to Form.scx when selecting Form.Object.sc2
RedirectClassType: 1 precedes this setting | +| [RedirectFormPerFileToMain](#redirectclassperfiletomain) | _0_, 1 | 0=Don't redirect to Form.scx,
1=Redirect to Form.scx when selecting Form.Object.sc2
RedirectClassType: 1 precedes this setting | | RedirectFormType | _0_, 1, 2 | For classes created with UseClassPerFile>0 in the form Form[.baseclass].Object.sx2 (scx only) | | | | 0=creates / refresh class in Form.SCX and add / replace all other classes of this library | | | | 1=creates / refresh class Form[.baseclass].Object.SCX and do not touch Form.SCX | @@ -550,7 +550,7 @@ This can be useful if you want to divide a big library in smaller pieces. #### Note By default, these settings are valid for SCX and DBC files as well. SCX files may expand to header, form and dataenvironment, and a DBC may be split into header and several files of the objects contained. If you like finer and independend control over forms and databases, check -- [Create File-Per-Form](create_file_per_form) and +- [Create File-Per-Form](#create-file-per-form) and - [Create File-Per-DBC](#create-file-per-dbc) ### Create File-Per-Form @@ -782,4 +782,4 @@ Last changed: _2023/09/06_ This project is part of [VFPX](https://vfpx.github.io/). ---- -Last changed: _2023/11/26_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +Last changed: _2024/08/26_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/foxbin2prg.cfg.txt b/foxbin2prg.cfg.txt index e3741f2..10de702 100644 --- a/foxbin2prg.cfg.txt +++ b/foxbin2prg.cfg.txt @@ -1,6 +1,6 @@ *################################################################################################################ *FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS) -*Version: v1.21.03 +*Version: v1.21.04 ***************************************************************************************************************** * Note, configuration files will follow an inheritance. @@ -137,7 +137,7 @@ *---------------------------------------------------------------------------------------------------------------- *-- PJX special -*BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo +*BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo, 2 = Don't keep DevInfo or ObjRev *---------------------------------------------------------------------------------------------------------------- *-- DBF special diff --git a/foxbin2prg.prg b/foxbin2prg.prg index b1906b7..c708b76 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -1,5 +1,5 @@ #DEFINE DN_FB2PRG_VERSION 1.21 -#DEFINE DC_FB2PRG_VERSION_REAL '1.21.03' +#DEFINE DC_FB2PRG_VERSION_REAL '1.21.04' *--------------------------------------------------------------------------------------------------- * Module.........: FOXBIN2PRG.PRG - FOR VISUAL FOXPRO 9.0 @@ -325,6 +325,7 @@ * 19/11/2023 LScheffler v1.21.01 Bug Fix: Problems regenerating databases with splited contents due to the removed Spanish characters in comment. (LScheffler) * 03/01/2024 LScheffler v1.21.02 Bug Fix: Problems regenerating single classes and forms from text files in class-per-file form; #105 (LScheffler) * 24/04/2024 LScheffler v1.21.03 Bug Fix: Text To Bin with Fieldcaption = "NULL" (misnomer. it's the field name); #106; #106 (griessbach14943) +* 26/08/2024 DHennig v1.21.04 Added support for BodyDevInfo = 2 in CFG file to prevent both DevInfo and ObjRev from being written to PJ2 file * * *--------------------------------------------------------------------------------------------------- @@ -3135,7 +3136,9 @@ Define Class c_foxbin2prg As Session *pjx special Case Left( laConfig(m.I), 12 ) == Lower('BodyDevInfo:') lcValue = Alltrim( Substr( laConfig(m.I), 13 ) ) - If Inlist( lcValue, '0', '1' ) Then +*** DH 2024-08-26: support 2 as a value +* If Inlist( lcValue, '0', '1' ) Then + If Inlist( lcValue, '0', '1', '2' ) Then lo_CFG.n_BodyDevInfo = Int( Val( lcValue ) ) .writeLog( C_TAB + Justfname(lcConfigFile) + ' > BodyDevInfo: ' + Transform(lo_CFG.n_BodyDevInfo) ) Endif @@ -4221,7 +4224,8 @@ Define Class c_foxbin2prg As Session laOptions(04,1) = "*Debug:" && 0,1 Don't Activate individual .Log by default laOptions(04,2) = ".n_Debug" laOptions(04,3) = 0 - laOptions(05,1) = "*BodyDevInfo:" && 0,1 [0=Don't keep DevInfo for body pjx records], 1=Keep DevInfo +*** DH 2024-08-26: added text for option 2 + laOptions(05,1) = "*BodyDevInfo:" && 0,1 [0=Don't keep DevInfo for body pjx records], 1=Keep DevInfo, 2 = Don't keep DevInfo or ObjRev laOptions(05,2) = ".n_BodyDevInfo" laOptions(05,3) = 0 laOptions(06,1) = "*ExtraBackupLevels:" && n By default 1 BAK is created. With this you can make more .N.BAK, or none @@ -18495,31 +18499,47 @@ toFoxBin2Prg.n_CheckFileInPath=2 <<>> .ADD('<>') ENDTEXT - If toFoxBin2Prg.n_BodyDevInfo=1 +*** DH 2024-08-26: changed IF to CASE and added case for BodyDevInfo = 2 meaning omit DEVINFO and OBJREV +* If toFoxBin2Prg.n_BodyDevInfo=1 + do case + case toFoxBin2Prg.n_BodyDevInfo=1 * Generates an extra DevInfo tag for each body PJX record - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 - <<>> <<'&'>><<'&'>> <> - Type="<>" - Cpid="<>" - Timestamp="<>" - ID="<>" - ObjRev="<>" - User="<>" - DevInfo="<>" - <> - ENDTEXT - Else - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 - <<>> <<'&'>><<'&'>> <> - Type="<>" - Cpid="<>" - Timestamp="<>" - ID="<>" - ObjRev="<>" - User="<>" - <> - ENDTEXT - Endif + TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 + <<>> <<'&'>><<'&'>> <> + Type="<>" + Cpid="<>" + Timestamp="<>" + ID="<>" + ObjRev="<>" + User="<>" + DevInfo="<>" + <> + ENDTEXT +* Else + case toFoxBin2Prg.n_BodyDevInfo=2 + TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 + <<>> <<'&'>><<'&'>> <> + Type="<>" + Cpid="<>" + Timestamp="<>" + ID="<>" + User="<>" + <> + ENDTEXT + otherwise + TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 + <<>> <<'&'>><<'&'>> <> + Type="<>" + Cpid="<>" + Timestamp="<>" + ID="<>" + ObjRev="<>" + User="<>" + <> + ENDTEXT +* Endif + endcase +*** DH 2024-08-26: end of changes loReg = .Null. Endfor @@ -19132,6 +19152,7 @@ Define Class c_conversor_pjm_a_prg As c_conversor_bin_a_prg *-- Definir archivos del proyecto y metadata: CPID, Timestamp, ID, etc. loProject.KeySort = 2 +messagebox('convert') For Each loReg In loProject &&FOXOBJECT TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 <<>> .ADD('<>') @@ -31670,6 +31691,7 @@ Define Class CL_LANG As Custom <<>> ENDTEXT *** DH 2021-03-04: added HomeDir to text +*** DH 2024-08-26: added text for option 2 for BodyDevInfo .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_Header4 = "*Options for folder <<.c_Recompile>>, read as of <>" TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_cfg TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 <<>>################################################################################################################ @@ -31811,7 +31833,7 @@ Define Class CL_LANG As Custom <<>>---------------------------------------------------------------------------------------------------------------- <<>> <<>>-- PJX special - <<>>BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo + <<>>BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo, 2 = Don't keep DevInfo or ObjRev <<>>---------------------------------------------------------------------------------------------------------------- <<>> <<>>-- DBF special @@ -32019,6 +32041,7 @@ Define Class CL_LANG As Custom <<>> ENDTEXT *** DH 2021-03-04: added HomeDir to text +*** DH 2024-08-26: added text for option 2 for BodyDevInfo .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_Header4 = "*Options for folder <<.c_Recompile>>, read as of <>" TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_cfg TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 <<>>################################################################################################################ @@ -32160,7 +32183,7 @@ Define Class CL_LANG As Custom <<>>---------------------------------------------------------------------------------------------------------------- <<>> <<>>-- PJX special - <<>>BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo + <<>>BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo, 2 = Don't keep DevInfo or ObjRev <<>>---------------------------------------------------------------------------------------------------------------- <<>> <<>>-- DBF special @@ -32745,6 +32768,7 @@ Define Class CL_LANG As Custom <<>> ENDTEXT *** DH 2021-03-04: added HomeDir to text +*** DH 2024-08-26: added text for option 2 for BodyDevInfo .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_Header4 = "*Options for folder <<.c_Recompile>>, read as of <>" TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_cfg TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 <<>>################################################################################################################ @@ -32886,7 +32910,7 @@ Define Class CL_LANG As Custom <<>>---------------------------------------------------------------------------------------------------------------- <<>> <<>>-- PJX special - <<>>BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo + <<>>BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo, 2 = Don't keep DevInfo or ObjRev <<>>---------------------------------------------------------------------------------------------------------------- <<>> <<>>-- DBF special