Merge branch 'master' of github.com:fdbozzo/foxbin2prg

This commit is contained in:
Lutz
2025-06-15 20:06:17 +02:00
9 changed files with 72 additions and 47 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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)

Binary file not shown.

View File

@@ -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
*created by VFPX Deployment, 08/26/2024 2:08:42 PM

View File

@@ -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)
Last changed: _2024/08/26_ ![Picture](./pictures/vfpxpoweredby_alternative.gif)

View File

@@ -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<br/>1=Normal<br/>2=Extended<br/>By default, don't generate individual \<file\>.Log with process hints.<br/>Activate with "1" to find possible error causes and for debugging,<br/>"2" is special logging.<br/>**If cDebug is set via parameter, this is ignored.** |
| BackgroundImage | \<cFile\> | Backgroundimage for process form |
| HomeDir | 0, _1_ | 0=don't save HomeDir in PJ2,<br/>1=save HomeDir in PJ2.<br/>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.<br/>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** <br/>Settings for config file via parameter only0=Allow scanning "regular" config files (file via parameter is just additional default)<br/>1=Only read tree from root of the file given by parameter, not FoxBin2Prg default<br/>2=Only read folder and subfolder of the file given by parameter<br/>3=Read no other file<br/>This is like<br/>0 Default \| Parameter file \| Default near FoxBin2Prg \| all other config files<br/>1 Default \| Parameter file \| Inheritance from root to parent of folder \| folder and subdirs<br/>2 Default \| Parameter file \| folder and subdirs<br/>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,<br/>1=Check file.class.vc2 inclusion<br/>Only used if import file is in file[.baseclass].class.tx2 syntax.<br/>Ignored for RedirectClassType: 2 |
|||
| [UseFormSettings](create_file_per_form)
| _0_, 1 | 0=Old Style, like the class settings<br/>1=Form style, special for form<br/>This controls the use of the _UseFormPerFile_, _RedirectFormPerFileToMain_, _RedirectFormType_ and _FormPerFileCheck_ options.<br/>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<br/>1=Form style, special for form<br/>This controls the use of the _UseFormPerFile_, _RedirectFormPerFileToMain_, _RedirectFormType_ and _FormPerFileCheck_ options.<br/>Only if this option is set, the options will be read. |
| UseFormPerFile | _0_, 1, 2 | 0=One library _Text_ file,<br/>1=Multiple Form.Object.sc2 files,<br/>2=Multiple Form.baseclass.Object.sc2 files<br/>See [Create Class-Per-File](#create-class-per-file) |
| [RedirectFormPerFileToMain:](#redirectclassperfiletomain:) | _0_, 1 | 0=Don't redirect to Form.scx,<br/>1=Redirect to Form.scx when selecting Form.Object.sc2<br/>RedirectClassType: 1 precedes this setting |
| [RedirectFormPerFileToMain](#redirectclassperfiletomain) | _0_, 1 | 0=Don't redirect to Form.scx,<br/>1=Redirect to Form.scx when selecting Form.Object.sc2<br/>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)
Last changed: _2024/08/26_ ![Picture](./pictures/vfpxpoweredby_alternative.gif)

View File

@@ -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

View File

@@ -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
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
*
*---------------------------------------------------------------------------------------------------
@@ -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 <file>.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('<<loReg.NAME>>')
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
<<>> <<'&'>><<'&'>> <<C_FILE_META_I>>
Type="<<loReg.TYPE>>"
Cpid="<<INT( loReg.CPID )>>"
Timestamp="<<INT( loReg.TIMESTAMP )>>"
ID="<<INT( loReg.ID )>>"
ObjRev="<<INT( loReg.OBJREV )>>"
User="<<STRCONV(loReg.USER,13)>>"
DevInfo="<<STRCONV(loReg.DEVINFO,13)>>"
<<C_FILE_META_F>>
ENDTEXT
Else
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8
<<>> <<'&'>><<'&'>> <<C_FILE_META_I>>
Type="<<loReg.TYPE>>"
Cpid="<<INT( loReg.CPID )>>"
Timestamp="<<INT( loReg.TIMESTAMP )>>"
ID="<<INT( loReg.ID )>>"
ObjRev="<<INT( loReg.OBJREV )>>"
User="<<STRCONV(loReg.USER,13)>>"
<<C_FILE_META_F>>
ENDTEXT
Endif
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8
<<>> <<'&'>><<'&'>> <<C_FILE_META_I>>
Type="<<loReg.TYPE>>"
Cpid="<<INT( loReg.CPID )>>"
Timestamp="<<INT( loReg.TIMESTAMP )>>"
ID="<<INT( loReg.ID )>>"
ObjRev="<<INT( loReg.OBJREV )>>"
User="<<STRCONV(loReg.USER,13)>>"
DevInfo="<<STRCONV(loReg.DEVINFO,13)>>"
<<C_FILE_META_F>>
ENDTEXT
* Else
case toFoxBin2Prg.n_BodyDevInfo=2
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8
<<>> <<'&'>><<'&'>> <<C_FILE_META_I>>
Type="<<loReg.TYPE>>"
Cpid="<<INT( loReg.CPID )>>"
Timestamp="<<INT( loReg.TIMESTAMP )>>"
ID="<<INT( loReg.ID )>>"
User="<<STRCONV(loReg.USER,13)>>"
<<C_FILE_META_F>>
ENDTEXT
otherwise
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8
<<>> <<'&'>><<'&'>> <<C_FILE_META_I>>
Type="<<loReg.TYPE>>"
Cpid="<<INT( loReg.CPID )>>"
Timestamp="<<INT( loReg.TIMESTAMP )>>"
ID="<<INT( loReg.ID )>>"
ObjRev="<<INT( loReg.OBJREV )>>"
User="<<STRCONV(loReg.USER,13)>>"
<<C_FILE_META_F>>
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('<<loReg.NAME>>')
@@ -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 <<DATETIME()>>"
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 <<DATETIME()>>"
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 <<DATETIME()>>"
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