Merge pull request #126 from lscheffler/fork_mod
Documentation reworked - Single file for config files - Dependencies of parameters and settings better shown - Some API pem added. - Static paths removed - Settings better and more often linked - TOCs reworked
This commit is contained in:
44
README.md
44
README.md
@@ -32,16 +32,31 @@ If you like to see Fernandos blog, or value his work:
|
|||||||
Thank you for your support!
|
Thank you for your support!
|
||||||
|
|
||||||
----
|
----
|
||||||
## Important Note
|
## Table of contents
|
||||||
To fix a bug, this version changes the text file header.
|
- [Contribution](#contribution)
|
||||||
It is suggested to create all text files and commit in one step.
|
- [What is FOXBIN2PRG](#what-is-foxbin2prg)
|
||||||
|
- [Advantages](#advantages)
|
||||||
|
- [Examples](#examples)
|
||||||
|
- [Redefine extensions of _Text_](#redefine-extensions-of-text)
|
||||||
|
- [Use FoxBin2Prg](#use-foxbin2prg)
|
||||||
|
- [Interactive list of options](#interactive-list-of-options)
|
||||||
|
- [Use with MS Windows SendTo](#use-with-ms-windows-sendto)
|
||||||
|
- [How to use the links](#how-to-use-the-links)
|
||||||
|
- [LOCALIZATION](#localization)
|
||||||
|
- [FINAL NOTE](#final-note)
|
||||||
|
- [LICENCE](#licence)
|
||||||
|
- [Changes](#changes)
|
||||||
|
- [Changes to Configuration](#changes-to-settings)
|
||||||
|
- [Limitations](#limitations)
|
||||||
|
- [**Documentation**](#usage)
|
||||||
|
- [**Helping with FoxBin2PRG / issues**](#helping-with-foxbin2prg--issues)
|
||||||
|
- [Note](#note)
|
||||||
|
|
||||||
----
|
----
|
||||||
## Contribution
|
## Contribution
|
||||||
See [contribution](./.github/CONTRIBUTING.md)
|
See [contribution](./.github/CONTRIBUTING.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## What is FOXBIN2PRG?
|
## What is FOXBIN2PRG?
|
||||||
It is a program intended to be used with **SCM tools** (Source Code Managers, like VSS, CVS, SVN)
|
It is a program intended to be used with **SCM tools** (Source Code Managers, like VSS, CVS, SVN)
|
||||||
and *DVCS tools* (Version Control Systems such as Git, Mercurial, Plastic, and others),
|
and *DVCS tools* (Version Control Systems such as Git, Mercurial, Plastic, and others),
|
||||||
@@ -124,14 +139,14 @@ You can create up to three different shortcuts pointing to FoxBin2Prg.exe and in
|
|||||||
##### How to use the links
|
##### How to use the links
|
||||||
Select a file, right-click, SendTo -> FoxBin2Prg
|
Select a file, right-click, SendTo -> FoxBin2Prg
|
||||||
|
|
||||||
## LOCALIZATION:
|
## LOCALIZATION
|
||||||
Is automatic starting at v1.19.38 (Languages: EN,ES,FR,DE)
|
Is automatic starting at v1.19.38 (Languages: EN,ES,FR,DE)
|
||||||
|
|
||||||
## FINAL NOTE:
|
## FINAL NOTE
|
||||||
This program is Open Source and "libre", and I don't make any guaranties that it fulfills your expectations or that it will be free of bugs.
|
This program is Open Source and "libre", and I don't make any guaranties that it fulfills your expectations or that it will be free of bugs.
|
||||||
I will try to fix bugs if my obligations let me do it.
|
I will try to fix bugs if my obligations let me do it.
|
||||||
|
|
||||||
## LICENCE:
|
## LICENCE
|
||||||
This work is licensed under the Creative Commons Attribution 4.0 International License.
|
This work is licensed under the Creative Commons Attribution 4.0 International License.
|
||||||
To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/.
|
To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/.
|
||||||
|
|
||||||
@@ -139,7 +154,7 @@ To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0
|
|||||||
## Changes
|
## Changes
|
||||||
See [Changes](./docs/ChangeLog.md)
|
See [Changes](./docs/ChangeLog.md)
|
||||||
|
|
||||||
### Changes to Settings
|
### Changes to Configuration
|
||||||
To get the new settings in config file, use the new create-a-template function:
|
To get the new settings in config file, use the new create-a-template function:
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -147,23 +162,23 @@ DO FOXBIN2PRG.PRG WITH "-c","template.cfg" ==> Generates a template for Fox
|
|||||||
DO FOXBIN2PRG.PRG WITH "-C","template.cfg" ==> Generates a template for FoxBin2Prg.cfg config file with active settings
|
DO FOXBIN2PRG.PRG WITH "-C","template.cfg" ==> Generates a template for FoxBin2Prg.cfg config file with active settings
|
||||||
DO FOXBIN2PRG.PRG WITH "-t","template.dbf.cfg" ==> Generates a template for table.dbf.cfg per table config file with newest settings
|
DO FOXBIN2PRG.PRG WITH "-t","template.dbf.cfg" ==> Generates a template for table.dbf.cfg per table config file with newest settings
|
||||||
```
|
```
|
||||||
|
See [Configuration](./FoxBin2Prg_Settings.md) for more information about configuration file(s).
|
||||||
|
|
||||||
----
|
----
|
||||||
## Limitations
|
## Limitations
|
||||||
If dealing with project files, FoxBin2Prg will fail if files of the project are not stored on the drive of the project.
|
- If dealing with project files, FoxBin2Prg will fail if files of the project are not stored on the drive of the project.
|
||||||
See [issue #93](https://github.com/fdbozzo/foxbin2prg/issues/93).
|
See [issue #93](https://github.com/fdbozzo/foxbin2prg/issues/93).
|
||||||
|
- FoxBin2Prg could be used as exe or prg. See [Usage](./docs/FoxBin2Prg.md#usage) for details and problems.
|
||||||
|
|
||||||
----
|
----
|
||||||
## Usage
|
## Documentation
|
||||||
For usage see [documentation](./docs/FoxBin2Prg.md)
|
For usage see [documentation](./docs/FoxBin2Prg.md)
|
||||||
|
|
||||||
----
|
----
|
||||||
|
## Helping with FoxBin2PRG / issues
|
||||||
## Helping with FoxBin2PRG
|
|
||||||
See [contribution](./.github/CONTRIBUTING.md)
|
See [contribution](./.github/CONTRIBUTING.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Note
|
## Note
|
||||||
The spanish documentation is not longer maintained - it would fade.
|
The spanish documentation is not longer maintained - it would fade.
|
||||||
For fast access a quick run is [introduced](#use-foxbin2prg), more [complex](./docs/FoxBin2Prg_Run.md#usage-1), and a large [documentation](./docs/FoxBin2Prg.md) exists too.
|
For fast access a quick run is [introduced](#use-foxbin2prg), more [complex](./docs/FoxBin2Prg_Run.md#usage-1), and a large [documentation](./docs/FoxBin2Prg.md) exists too.
|
||||||
@@ -174,5 +189,4 @@ If you like to see Fernando's blog, or value his work:
|
|||||||
- [](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=fdbozzo%40gmail%2ecom&lc=ES&item_name=FoxBin2Prg&item_number=FoxBin2Prg&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted)
|
- [](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=fdbozzo%40gmail%2ecom&lc=ES&item_name=FoxBin2Prg&item_number=FoxBin2Prg&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted)
|
||||||
|
|
||||||
----
|
----
|
||||||
|
Last changed: _2026/06/21_ 
|
||||||
Last changed: _2026/06/18_ 
|
|
||||||
|
|||||||
@@ -12,18 +12,24 @@ As far as possible these are the original documents. Changes are added where fun
|
|||||||
## Table of contents
|
## Table of contents
|
||||||
- [Use](#use)
|
- [Use](#use)
|
||||||
- [Download for development](#download-for-development)
|
- [Download for development](#download-for-development)
|
||||||
|
- [Source](#source)
|
||||||
|
- [Rebuild additional files](#rebuild-additional-files)
|
||||||
- [Requirements](#requirements)
|
- [Requirements](#requirements)
|
||||||
|
- [Demo video](#demo-video)
|
||||||
- [What is FoxBin2Prg](#what-is-foxbin2prg)
|
- [What is FoxBin2Prg](#what-is-foxbin2prg)
|
||||||
- [Advantages](#advantages)
|
- [Advantages](#advantages)
|
||||||
- [Example](#example)
|
- [Example](#example)
|
||||||
- [Limitations](#limitations)
|
- [Limitations](#limitations)
|
||||||
- [Usage](#usage)
|
- [Usage](#usage)
|
||||||
|
- [**Configuration**](#configuration)
|
||||||
- [Keep reading](#keep-reading)
|
- [Keep reading](#keep-reading)
|
||||||
|
|
||||||
## Use
|
## Use
|
||||||
- Download the [runtime](https://github.com/fdbozzo/foxbin2prg/blob/master/ThorUpdater/FoxBin2Prg.zip) (same as used by Thor)
|
- Download the [runtime](https://github.com/fdbozzo/foxbin2prg/blob/master/ThorUpdater/FoxBin2Prg.zip) (same as used by Thor)
|
||||||
- Or (best) install via [Thor](https://github.com/VFPX/Thor/blob/master/Docs/Thor_install.md), this keeps you on the latest version.
|
- Or (best) install via [Thor](https://github.com/VFPX/Thor/blob/master/Docs/Thor_install.md), this keeps you on the latest version.
|
||||||
|
|
||||||
|
See [Usage](#usage) for details and problems.
|
||||||
|
|
||||||
## Download for development
|
## Download for development
|
||||||
### Source
|
### Source
|
||||||
Original repository at https://github.com/fdbozzo/foxbin2prg.
|
Original repository at https://github.com/fdbozzo/foxbin2prg.
|
||||||
@@ -77,26 +83,31 @@ for which a _Text_ version is generated with pj2, sc2, vc2, fr2, lb2, dc2, db2,
|
|||||||
The extensions may be reconfigured to be compatible with SCCAPI (just tested with SourceSafe).
|
The extensions may be reconfigured to be compatible with SCCAPI (just tested with SourceSafe).
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
## Limitations
|
## Limitations
|
||||||
If dealing with project files, FoxBin2Prg will fail if files of the project are not stored on the drive of the project.
|
- If dealing with project files, FoxBin2Prg will fail if files of the project are not stored on the drive of the project.
|
||||||
See [issue #93](https://github.com/fdbozzo/foxbin2prg/issues/93).
|
See [issue #93](https://github.com/fdbozzo/foxbin2prg/issues/93).
|
||||||
|
- FoxBin2Prg could be used as exe or prg. See [Usage](#usage) for details and problems.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
FoxBin2Prg can be used in tree ways:
|
FoxBin2Prg can be used in tree ways:
|
||||||
1. [EXE version](./FoxBin2Prg_Run.md): (Recommended and fastest)
|
1. [EXE version](./FoxBin2Prg_Run.md): (Recommended and fastest)
|
||||||
- All-inclusive, you just need foxbin2prg.exe and filename_caps.exe/cfg.
|
- All-inclusive, you just need _foxbin2prg.exe_ and _filename_caps.exe/cfg_.
|
||||||
- Runs from windows
|
- Runs from windows
|
||||||
- **If run from IDE, the EXE needs to be compiled for the version of FoxPro.**
|
- **If run from IDE, the EXE needs to be compiled for the version of FoxPro.**
|
||||||
1. [PRG version](./FoxBin2Prg_Run.md):
|
1. [PRG version](./FoxBin2Prg_Run.md):
|
||||||
- You need various files: foxbin2prg.prg, all the props*.txt files and filename_caps.exe/cfg. Keep in one folder.
|
- You need various files: _foxbin2prg.prg_, all the _props*.txt_ files and _filename_caps.exe/cfg_. Keep in one folder.
|
||||||
- Runs out of VFP IDE, no problems mixing VFP 9 and VFPA
|
- Runs out of VFP IDE, no problems mixing VFP 9 and VFPA
|
||||||
1. [Object version](./FoxBin2Prg_Object.md):
|
1. [Object version](./FoxBin2Prg_Object.md):
|
||||||
|
- Based on EXE or PRG
|
||||||
- Usable out of own code
|
- Usable out of own code
|
||||||
- expandable
|
- expandable
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
See [Configuration](./FoxBin2Prg_Settings.md) for more information about configuration file(s).
|
||||||
|
|
||||||
## Keep reading
|
## Keep reading
|
||||||
- [FoxBin2Prg Full Change History](./ChangeLog.md)
|
- [FoxBin2Prg Full Change History](./ChangeLog.md)
|
||||||
- [FoxBin2Prg Internals and Configuration](./FoxBin2Prg_Internals.md)
|
- [FoxBin2Prg Internals and Configuration](./FoxBin2Prg_Internals.md)
|
||||||
@@ -108,4 +119,4 @@ FoxBin2Prg can be used in tree ways:
|
|||||||
This project is part of [VFPX](https://vfpx.github.io/).
|
This project is part of [VFPX](https://vfpx.github.io/).
|
||||||
|
|
||||||
----
|
----
|
||||||
Last changed: _2026/06/20_ 
|
Last changed: _2026/06/21_ 
|
||||||
@@ -12,23 +12,21 @@ As far as possible these are the original documents. Changes are added where fun
|
|||||||
## Table of contents
|
## Table of contents
|
||||||
- [Why to use this tool](#why-to-use-this-tool)
|
- [Why to use this tool](#why-to-use-this-tool)
|
||||||
- [Limitations](#limitations)
|
- [Limitations](#limitations)
|
||||||
- [Configuration file](#configuration-file)
|
|
||||||
- [Configuration file per table](#configuration-file-per-table)
|
|
||||||
- [Excluding directories](#excluding-directories)
|
|
||||||
- [FoxBin2Prg Internals](#foxbin2prg-internals)
|
- [FoxBin2Prg Internals](#foxbin2prg-internals)
|
||||||
|
- [**Configuration**](#configuration)
|
||||||
|
- [Configuration per table](#configuration-per-table)
|
||||||
|
- [Parameters](#parameters)
|
||||||
- [ZOrder](#zorder)
|
- [ZOrder](#zorder)
|
||||||
- [RemoveZOrderSetFromProps setting](#removezordersetfromprops-setting)
|
- [RemoveZOrderSetFromProps setting](#removezordersetfromprops-setting)
|
||||||
- [VFP ZOrder bug and fix](#vfp-zorder-bug-and-fix)
|
- [VFP ZOrder bug and fix](#vfp-zorder-bug-and-fix)
|
||||||
- [DBC ordered fields](#dbc-ordered-fields)
|
- [DBC ordered fields](#dbc-ordered-fields)
|
||||||
- [PAM Section](#pam-section)
|
- [PAM Section](#pam-section)
|
||||||
- [Property Ordering](#property-ordering)
|
- [Property Ordering](#property-ordering)
|
||||||
- [Timestamps and UniqueIDs](#timestamps-and-uniqueids)
|
- [Timestamps and UniqueIDs](#timestamps-and-uniqueids)
|
||||||
- [DBF Data Export/Import for Diff/Merge](#dbf-data-export/import-for-diff/merge)
|
- [DBF Data Export/Import for Diff/Merge](#dbf-data-export/import-for-diff/merge)
|
||||||
- [Order and range of records](#order-and-range-of-records)
|
- [Order and range of records](#order-and-range-of-records)
|
||||||
- [Configuration per table](#configuration-per-table)
|
|
||||||
- [DBF/DB2 Convertion Hooks](#dbf/db2-convertion-hooks)
|
- [DBF/DB2 Convertion Hooks](#dbf/db2-convertion-hooks)
|
||||||
- [Language Support for messages](#language-support-for-messages)
|
- [Language Support for messages](#language-support-for-messages)
|
||||||
- [Multi-config](#multi-config)
|
|
||||||
- [File Capitalization](#file-capitalization)
|
- [File Capitalization](#file-capitalization)
|
||||||
- [Conversion processes Logging](#conversion-processes-logging)
|
- [Conversion processes Logging](#conversion-processes-logging)
|
||||||
- [Storing paths for pjx](#storing-paths-for-pjx)
|
- [Storing paths for pjx](#storing-paths-for-pjx)
|
||||||
@@ -91,149 +89,16 @@ but the result must be compilable and keep the structure.
|
|||||||
All limitations that occur to a binary format must be kept on the text representation -
|
All limitations that occur to a binary format must be kept on the text representation -
|
||||||
the definition of a HEADER class to a VCX will fail.
|
the definition of a HEADER class to a VCX will fail.
|
||||||
|
|
||||||
## Configuration file
|
|
||||||
The configuration how to run FoxBin2Prg is stored in configuration files, FoxBin2Prg.cfg for general settings, and [Configuration file per table](#configuration-file-per-table).
|
|
||||||
|
|
||||||
It is possible to create a template or a config with all options and comments via
|
|
||||||
```
|
|
||||||
DO FOXBIN2PRG.PRG WITH "-c","template.cfg" &&==> Generates a template for FoxBin2Prg.cfg config file with newest settings
|
|
||||||
DO FOXBIN2PRG.PRG WITH "-C","config.cfg" &&==> Generates a config file like FoxBin2Prg.cfg with recent settings of path of second parameter
|
|
||||||
```
|
|
||||||
See [command line](./FoxBin2Prg_Run.md#usage-2).
|
|
||||||
The config file is used to move local setting to a different comupter or for changes while branching.
|
|
||||||
|
|
||||||
The options in the template (or in the config that ships with FoxBin2Prg) are commented out.
|
|
||||||
To activate an option remove the asterix and set appropriate value.
|
|
||||||
|
|
||||||
There is a [Multi-config](#multi-config), that allows to have global settings with specific local settings.
|
|
||||||
If a setting does not follow inheritance, it is mentioned in the table below.
|
|
||||||
|
|
||||||
These are the FoxBin2Prg.cfg configuration file settings and their meaning.
|
|
||||||
The second line in the keyword column is the name of the respective property (if there is one)
|
|
||||||
in the settings object returned by get_DirSettings method of the API object. See [PEM](#pem).
|
|
||||||
|
|
||||||
| FoxBin2Prg.cfg keywords<br/>Property of settings object | Value (_Default_) | Description |
|
|
||||||
| ----- | ----- | ----- |
|
|
||||||
| Language | _(auto)_,<br/>EN, FR, ES, DE | Language of templates, shown messages and LOGs. EN=English, FR=French, ES=Español, DE=German, Not defined = AUTOMATIC (using VERSION(3)) ||
|
|
||||||
| DontShowProgress<br/>n_ShowProgressbar | 0 | **Deprecated**. Replaced by ShowProgressbar option from v1.19.40, see below.<br/>The values of 0 and 1 are inverted to ShowProgressbar. |
|
|
||||||
| ShowProgressbar<br/>n_ShowProgressbar | 0, _1_, 2 | 0=Don't show progressbar,<br/>1=Always show a progress bar,<br/>2=Only show it when processing multiple-files.<br/>**If set via parameter _cDontShowProgress_, this is ignored.<br/>_cDontShowProgress_ has value "0","1" inverted to the property.** |
|
|
||||||
| DontShowErrors<br/>n/a | _0_, 1 | 0=show message errors in a modal messagebox. (default)<br/>1=don't show errors<br/>**If set via parameter _cDontShowError_, this is ignored.**<br/>**There is no inheritance for this setting. First occurance wins.** |
|
|
||||||
| ExtraBackupLevels<br/>n/a | 0, _1_, n | <br/>0=No backup<br/>1=One backupfile _\_filename\_.BAK_ (default)<br/>n=n levels of backup in style _\_filename\_.n.BAK_<br/>**There is no inheritance for this setting. First occurance wins.** |
|
|
||||||
| Debug<br/>n_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 set via parameter _cDebug_, this is ignored.** |
|
|
||||||
| BackgroundImage<br/>c_BackgroundImage | \<cFile\> | Backgroundimage for process form |
|
|
||||||
| HomeDir<br/>n_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<br/>n_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<br/>n_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 |
|
|
||||||
|||
|
|
||||||
| XXX_Conversion_Support | n | Defines the conversion operation per filetype |
|
|
||||||
| | | For code:<br/> 0=No support,<br/>1=Generate _Text_ (Diff),<br/>2=Generate _Text_ and _Bin_ (Merge) |
|
|
||||||
| | | For complex data:<br/> (PJX / DBC / DBF): 0=No support,<br/>1=Generate Header _Text_ only (Diff),<br/>2=Generate Header _Text_ and _Bin_ (Merge/Only Structure!),<br/>4=Generate _Text_ with DATA (Diff),<br/>8=Export and Import DATA (Merge/Structure & Data) |
|
|
||||||
| PJX_Conversion_Support<br/>.n_PJX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional ((Merge/Only Structure!),<br/>4=Generate _Text_ with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data) and _bin_) support activated |
|
|
||||||
| VCX_Conversion_Support<br/>.n_VCX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated |
|
|
||||||
| SCX_Conversion_Support<br/>.n_SCX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated |
|
|
||||||
| FRX_Conversion_Support<br/>.n_FRX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated |
|
|
||||||
| LBX_Conversion_Support<br/>.n_LBX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated |
|
|
||||||
| MNX_Conversion_Support<br/>.n_MNX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated |
|
|
||||||
| DBC_Conversion_Support<br/>.n_DBC_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated |
|
|
||||||
| DBF_Conversion_Support<br/>.n_DBF_Conversion_Support | 0, _1_, 2, 4, 8 | Default value is 1 - just _Text_ support activated.<br/>The support for regenerating DBFs structures (value = 2) are disabled by default to not overrite data accidentally. When activating bidirectional support, keep in mind that Data is not restored, just the structure and indexes!.<br/>A value of 4 is used to export Structure and Data, but exported data is not imported again.<br/>A value of 8 is used for bidirectional support (No General fields!). <br/> **Note:** This can be [changed per table](#configuration-file-per-table). |
|
|
||||||
| FKY_Conversion_Support<br/>.n_FKY_Conversion_Support | 0, _1_ | Default value is 1 - _Text_ support activated |
|
|
||||||
| MEM_Conversion_Support<br/>.n_MEM_Conversion_Support | 0, _1_ | Default value is 1 - _Text_ support activated |
|
|
||||||
|||
|
|
||||||
| CheckFileInPath<br/>n_CheckFileInPath | _0_, 1, 2, 3 |Determines how 2Txt deals with files not in the subfolders of the PJX. No handler for UNC paths.<br />0 = Ignore. Default<br />1 = Check and error out if file is not on same structure (for source control)<br />2 = Create absolute path if file is on different drive.<br />3 = Create absolute path if file is not in structure<br />See [Storing paths for pjx](#storing-paths-for-pjx) |
|
|
||||||
|||
|
|
||||||
| UseClassPerFile<br/>n_UseClassPerFile | _0_, 1, 2 | 0=One library _Text_ file,<br/>1=Multiple file.class.vc2 files,<br/>2=Multiple file.baseclass.class.vc2 files<br/>See [Create Class-Per-File](#create-class-per-file) |
|
|
||||||
| [RedirectClassPerFileToMain:](#redirectclassperfiletomain:)<br/>l_RedirectClassPerFileToMain | _0_, 1 | 0=Don't redirect to file.vcx,<br/>1=Redirect to file.vcx when selecting file.class.vc2<br/>RedirectClassType: 1 precedes this setting |
|
|
||||||
| RedirectClassType<br/>n_RedirectClassType | _0_, 1, 2 | For classes created with UseClassPerFile>0 in the form file[.baseclass].class.tx2 (vcx only) |
|
|
||||||
| | | 0=creates / refresh class in file.VCX and add / replace all other classes of this library |
|
|
||||||
| | | 1=creates / refresh class file[.baseclass].class.VCX and do not touch file.VCX |
|
|
||||||
| | | 2=creates / refresh class in file.VCX and do not touch other classes of file.VCX |
|
|
||||||
| [ClassPerFileCheck](#classperfilecheck)<br/>l_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)<br/>l_UseFormSettings | _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<br/>n_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)<br/>l_RedirectFormPerFileToMain | _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<br/>n_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 |
|
|
||||||
| | | 2=creates / refresh class in Form.SCX and do not touch other classes of Form.SCX |
|
|
||||||
| [FormPerFileCheck](#classperfilecheck)<br/>l_FormPerFileCheck | _0_, 1 | 0=Don't check Form.Object.sc2 inclusion,<br/>1=Check Form.Object.sc2 inclusion<br/>Only used if import file is in Form[.baseclass].Object.sc2 syntax.<br/>Ignored for RedirectClassType: 2 |
|
|
||||||
|||
|
|
||||||
| OldFilesPerDBC<br/>l_OldFilesPerDBC | _0_, 1 | 0=Old Style,<br/>1=New style<br/>This controls the use of the _UseFilesPerDBC_, _RedirectFilePerDBCToMain_ and _ItemPerDBCCheck_ options.<br/>Only if this option is set, the **Form** options below will be read. |
|
|
||||||
| | | 0=New version inactive, options follow:<br/>UseFilesPerDBC=UseClassPerFile<br/>RedirectFilePerDBCToMain=RedirectClassPerFileToMain<br/>ItemPerDBCCheck=ClassPerFileCheck |
|
|
||||||
| | | 1=New version active, options active |
|
|
||||||
| | | Note: The options will be set to old style, if option is turned off. |
|
|
||||||
| UseFilesPerDBC<br/>n_UseFilesPerDBC | _0_, 1 | 0=One database dc2 file,<br/>1=Multiple file.\*.\*.dc2 files.<br/>See [Create File-Per-DBC](#create file-per-dbc)<br/>**Only if OldFilesPerDBC is 1** |
|
|
||||||
| | | 0=creates only a file.dc2 with all DBC (file) data |
|
|
||||||
| | | 1=creates a file.dc2 with DBC properties |
|
|
||||||
| | | and additional DBC files per DBC item (stored-proc, table, ..) |
|
|
||||||
| | | Note: recration only if RedirectFilePerDBCToMain is 1 |
|
|
||||||
| [RedirectFilePerDBCToMain](#redirectfileperdbctomain)<br/>l_RedirectFilePerDBCToMain | _0_, 1 | 0=Don't redirect to file.dc2,<br/>1=Redirect to file.tx2 when selecting file.item.*.dc2<br/>**Only if OldFilesPerDBC is 1** |
|
|
||||||
| [ItemPerDBCCheck](#itemperdbccheck)<br/>l_ItemPerDBCCheck | _0_, 1 | 0=Don't check file.item.*.dc2 inclusion,<br/> 1=Check file.item.*.dc2 inclusion<br/>**Only if OldFilesPerDBC is 1**|
|
|
||||||
|||
|
|
||||||
| NoTimestamps<br/>n/a | 0, _1_ | 0=Do not clear<br/>1=Clear<br/>By default, timestamp fields are cleared on _Text_ files, because a lot of differencies are generated on _Binaries_ and _Text_ files with Timestamps activated. This timestamp field is part of the vcx, scx and other Foxpro binary source code files.<br/>**If set via parameter _cNoTimestamps_, this is ignored.**<br/>**There is no inheritance for this setting. First occurance wins.** |
|
|
||||||
| ClearUniqueID<br/>n/a | 0, _1_ | 0=Keep UniqueID,<br/>1=Clear Unique ID.<br/>Very useful for Diff and Merge.<br/>By default, UniqueID fields are cleared on _Text_ files, because a lot of differencies are generated with UniqueID activated.<br/>**There is no inheritance for this setting. First occurance wins.** |
|
|
||||||
| OptimizeByFilestamp<br/>n/a | _0_, 1 | 0=Don't optimize (always generate),<br/>1=Optimize (generate only when destination filestamp es older). By default this optimization is deactivated, and it is not recommended if using for merge, so _Bin_ and _Text_ files can be modified seperately.<br/><span style="background-color: gold;">Dangerous while working with branches!</span>.<br/>**There is no inheritance for this setting. First occurance wins.** |
|
|
||||||
| RemoveNullCharsFromCode<br/>l_RemoveNullCharsFromCode | 0, _1_ | 1=Drop NULL chars from source code,<br/>0=Leave NULL chars in source code |
|
|
||||||
| RemoveZOrderSetFromProps<br/>l_RemoveZOrderSetFromProps | _0_, 1 | 1=Remove ZOrderSet from the properties,<br/>0=Leave ZOrderSet in the properties |
|
|
||||||
|||
|
|
||||||
| PRG_Compat_Level<br/>n_PRG_Compat_Level | _0_, 1 | 0=Legacy,<br/>1=Use HELPSTRING as Class Procedure comment. |
|
|
||||||
| ClearDBFLastUpdate<br/>l_ClearDBFLastUpdate | 0, _1_ | 0=Keep DBF LastUpdate,<br/>1=Clear DBF LastUpdate.<br/>Useful for Diff, minimizes differences. |
|
|
||||||
| ExcludeDBFAutoincNextval<br/>n_ExcludeDBFAutoincNextval | _0_, 1 | 0=Do not exclude this value from db2,<br/>1=Exclude this value from db2 |
|
|
||||||
| DBF_Conversion_Included<br/>c_DBF_Conversion_Included | * | If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf.<br/>See [Order and range of records](#order-and-range-of-records).<br/>**Note:** This can be [changed per table](#configuration-file-per-table). |
|
|
||||||
| DBF_Conversion_Excluded<br/>c_DBF_Conversion_Excluded | | If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf.<br/>See [Order and range of records](#order-and-range-of-records).<br/>**Note:** This can be [changed per table](#configuration-file-per-table). |
|
|
||||||
| DBF_BinChar_Base64<br/>l_DBF_BinChar_Base64 | 0, _1_ | 0=For character type fields, if NoCPTrans 0=do not transform,<br/>1=use Base64 transform (default)<br/>**Note:** This can be [changed per table](#configuration-file-per-table). |
|
|
||||||
| DBF_IncludeDeleted<br/>l_DBF_IncludeDeleted | _0_, 1 | 0=Do not include deleted records (default),<br/>1=Include deleted records<br/>**Note:** This can be [changed per table](#configuration-file-per-table). |
|
|
||||||
| | | **Note:**<br/>This is only true for tables. Generating DBC to _Text_ and back to _Binary_ will act as PACK DATABASE.<br/>The data added by _DBF_IncludeDeleted: 1_ will be ignored by old versions generating _Binary_ files. |
|
|
||||||
|||
|
|
||||||
| extension: xx2 | | FoxBin2Prg extensions ends in '2' (pj2, vc2, sc2, etc), but you can change that. |
|
|
||||||
| extension: pj2=<br/>c_pj2 | \<extension\> | Extension for text file representing project PJX |
|
|
||||||
| extension: vc2=<br/>c_vc2 | \<extension\> | Extension for text file representing classlibray VCX, or a class out of a VCX |
|
|
||||||
| extension: sc2=<br/>c_sc2 | \<extension\> | Extension for text file representing form SCX, or a class out of a SCX (Form; Dataenbironment) |
|
|
||||||
| extension: fr2=<br/>c_fr2 | \<extension\> | Extension for text file representing report FRX |
|
|
||||||
| extension: lb2=<br/>c_lb2 | \<extension\> | Extension for text file representing label LBX |
|
|
||||||
| extension: mn2=<br/>c_mn2 | \<extension\> | Extension for text file representing menu MNX |
|
|
||||||
| extension: db2=<br/>c_db2 | \<extension\> | Extension for text file representing table DBF, free or DBC bound |
|
|
||||||
| extension: dc2=<br/>c_dc2 | \<extension\> | Extension for text file representing database container DBC, or records from database container DBC |
|
|
||||||
| extension: fk2=<br/>c_fk2 | \<extension\> | Extension for text file representing macro file FKY |
|
|
||||||
| extension: me2=<br/>c_me2 | \<extension\> | Extension for text file representing variable memory MEM, created with SAVE TO |
|
|
||||||
| | | **Example for for making it SourceSafe (sccapi v1) compatible:**<br/>extension: pj2=pja<br/>extension: vc2=vca<br/>extension: sc2=sca<br/>extension: fr2=fra<br/>extension: lb2=lba<br/>extension: mn2=mna<br/>extension: db2=dba<br/>extension: dc2=dca |
|
|
||||||
|
|
||||||
### Note
|
|
||||||
The options will be read outside in, top to down. See [Multi-config](#multi-config)
|
|
||||||
|
|
||||||
## Configuration file per table
|
|
||||||
Those configuration files are valid for a single table only. The idea is to have special settings for single tables.
|
|
||||||
|
|
||||||
It is possible to create a template with all options and comments via
|
|
||||||
```
|
|
||||||
DO FOXBIN2PRG.PRG WITH "-t","template.dbf.cfg" &&==> Generates a template for table.dbf.cfg per table config file with newest settings.
|
|
||||||
```
|
|
||||||
|
|
||||||
See [command line](./FoxBin2Prg_Run.md#usage-2).
|
|
||||||
The options in the template (or in the config that ships with FoxBin2Prg) are commented out.
|
|
||||||
To activate an option remove the asterix and set appropriate value.
|
|
||||||
These are the Table.dbf.cfg configuration file settings and their meaning:
|
|
||||||
|
|
||||||
| FoxBin2Prg.cfg keywords | Value | per<br/>file | Description |
|
|
||||||
| ----- | ----- | ----- | ----- |
|
|
||||||
| DBF_Conversion_Support | 0, 1, 2, 4, 8 | | 0=No support,<br/>1=Generate Header _Text_ only (Diff),<br/>2=Generate Header _Text_ and _Bin_ (Merge/Only Structure!),<br/>4=Generate _Text_ with DATA (Diff),<br/>8=Export and Import DATA (Merge/Structure & Data) |
|
|
||||||
| DBF_Conversion_Order | c_Expression | x | Field expresion (For _INDEX ON_). ie: name+str(age,3),<br/>Empty means no sort order. <br/> usefull only if *DBF_Conversion_Support* >0 |
|
|
||||||
| DBF_Conversion_Condition | c_Expression | x | Logical expression (For _SCAN FOR_). ie: age > 10 AND NOT DELETED(),<br/>empty means all records, except *DBF_IncludeDeleted* <br/> usefull only if *DBF_Conversion_Support* >0 |
|
|
||||||
| DBF_IndexList | c_FileList | x | A comma delimited list of additional index files ( cdx or idx ). __Not the structural index file.__ |
|
|
||||||
| DBF_BinChar_Base64 | 0, 1 | | 0=For character type fields, if NoCPTrans 0=do not transform,<br/>1=use Base64 transform <br/> usefull only if *DBF_Conversion_Support* > 2 |
|
|
||||||
| DBF_IncludeDeleted | 0, 1 | | 0=Do not include deleted records,<br/>1=Include deleted records <br/> usefull only if *DBF_Conversion_Support* > 2 |
|
|
||||||
|
|
||||||
Setting *per file** could only be used via this configuration file.
|
|
||||||
For defaults, see [Configuration file](#configuration-file).
|
|
||||||
|
|
||||||
## Excluding directories
|
|
||||||
It is possible to exclude directory structures from processing. Placing a file **.FoxBin2Prg_Ignore** into a directory will stop FoxBin2Prg from processing any file in this directory and it's subdirectories. The file must just exist and could otherwise be empty.
|
|
||||||
The difference to setting all *XXX_Conversion_Support to 0* is, that it could not be turned on again down the directory structure.
|
|
||||||
|
|
||||||
This was set up to ignore the local GoFish_ settings and history folder, the file will be automatically created by GoFish starting with version 6.2.004.
|
|
||||||
|
|
||||||
## FoxBin2Prg Internals
|
## FoxBin2Prg Internals
|
||||||
|
### Configuration
|
||||||
|
The internals found on this document are set via [Configuration file(s)](./FoxBin2Prg_Settings.md). See there for a complete list of all settings.
|
||||||
|
|
||||||
|
#### Configuration per table
|
||||||
|
New \<filename.dbf.cfg> configuration options. See [Configuration file per table](./FoxBin2Prg_Settings.md#configuration-file-per-table).
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
Some of the internals might be influenced by parameters of either the call of the [program / executable](./FoxBin2Prg_Run.md#usage-1) or [API, Execute method](./FoxBin2Prg_Object.md#execute).
|
||||||
|
|
||||||
### ZOrder
|
### ZOrder
|
||||||
In _Text_ files and starting from v1.19.12, the ZOrder,
|
In _Text_ files and starting from v1.19.12, the ZOrder,
|
||||||
that determines the order on which objects are instantiated and which one is on top,
|
that determines the order on which objects are instantiated and which one is on top,
|
||||||
@@ -350,7 +215,7 @@ Since version v1.19.47, importing of Data can be activated with **"DBF_Conversio
|
|||||||
If you want to export the data of just some tables and not for all of them, one way is moving the tables
|
If you want to export the data of just some tables and not for all of them, one way is moving the tables
|
||||||
for data export to another directory, or even a subdirectory of main data files,
|
for data export to another directory, or even a subdirectory of main data files,
|
||||||
and write a foxbin2prg.cfg with **"DBF_Conversion_Support: 4 or 8"** for this diretory only,
|
and write a foxbin2prg.cfg with **"DBF_Conversion_Support: 4 or 8"** for this diretory only,
|
||||||
taking advantage of multi-configuration capability introduced on v1.19.25
|
taking advantage of [Multi configuration](./multi-configuration#multi-configuration) capability introduced on v1.19.25
|
||||||
A much better option that join the best of the two worlds, available from v1.19.44,
|
A much better option that join the best of the two worlds, available from v1.19.44,
|
||||||
could be using the default setting **"DBF_Conversion_Support: 1"** and using **individual cfg files** for each table
|
could be using the default setting **"DBF_Conversion_Support: 1"** and using **individual cfg files** for each table
|
||||||
(table.dbf.cfg) on which you want to export their data, so this way you can have only the structure in DB2 files
|
(table.dbf.cfg) on which you want to export their data, so this way you can have only the structure in DB2 files
|
||||||
@@ -372,26 +237,6 @@ Example of multiple file masks (separte with ","):
|
|||||||
"DBF_Conversion_Included: PET**.**, ??ME.DBF, ???.DBF, ?.**"
|
"DBF_Conversion_Included: PET**.**, ??ME.DBF, ???.DBF, ?.**"
|
||||||
````
|
````
|
||||||
|
|
||||||
### Configuration per table
|
|
||||||
New \<filename.dbf.cfg> configuration options. See [Configuration file per table](#configuration-file-per-table).
|
|
||||||
|
|
||||||
These options can be used in any combination inside a dbf particular cfg file,
|
|
||||||
if you create a text file using your dbf filename and adding ".cfg".
|
|
||||||
|
|
||||||
#### Syntax for filename.dbf.cfg contents
|
|
||||||
````
|
|
||||||
"DBF_Conversion_Support: <4 for export only or 8 for bidirectional support>"
|
|
||||||
"DBF_Conversion_Order: <C_Expression>"
|
|
||||||
"DBF_Conversion_Condition: <C_Expression>"
|
|
||||||
````
|
|
||||||
|
|
||||||
#### Example: customers.dbf.cfg
|
|
||||||
````
|
|
||||||
"DBF_Conversion_Support: 4"
|
|
||||||
"DBF_Conversion_Order: cust_no"
|
|
||||||
"DBF_Conversion_Condition: cust_no > 10"
|
|
||||||
````
|
|
||||||
|
|
||||||
### DBF/DB2 Convertion Hooks
|
### DBF/DB2 Convertion Hooks
|
||||||
From version v1.19.19 there is a new property "run_AfterCreateTable" and from version v1.19.24 "run_AfterCreate_DB2".
|
From version v1.19.19 there is a new property "run_AfterCreateTable" and from version v1.19.24 "run_AfterCreate_DB2".
|
||||||
The purpose of both properties is to allow the execution of an external program each time a DBF is converted to DB2 or a DB2
|
The purpose of both properties is to allow the execution of an external program each time a DBF is converted to DB2 or a DB2
|
||||||
@@ -447,32 +292,6 @@ and send it to me. I will include it in the next release ;-)
|
|||||||
.h language files are not supported anymore, and are now implemented inside FoxBin2Prg,
|
.h language files are not supported anymore, and are now implemented inside FoxBin2Prg,
|
||||||
in the "C_LANG" class at the end of the PRG_
|
in the "C_LANG" class at the end of the PRG_
|
||||||
|
|
||||||
### Multi-config
|
|
||||||
Starting at version v1.19.25 FoxBin2Prg allow configuration per directory,
|
|
||||||
overriding the main configuration of FoxBin2Prg directory.
|
|
||||||
The override is by each setting, so you can reconfigure one or more settings and the
|
|
||||||
remaining settings are inherited from main CFG.
|
|
||||||
|
|
||||||
From v1.19.42 CFGs are inherited between directories from parent to child,
|
|
||||||
so if you have all your developments under, let's say, "c:\devs" directory and subdirs,
|
|
||||||
de CFG in "c:\devs" will be inherited on subdirs, and settings can be overriden one by one if you want to.
|
|
||||||
This inheritance saves a lot of time and minimizes the CFGs needed \:\)
|
|
||||||
|
|
||||||
##### Note
|
|
||||||
Options will be read outside in, top to down.
|
|
||||||
If an option is defined multiple times, even in the same file, last occurance wins.
|
|
||||||
|
|
||||||
The exception are the group controlling the new style to split DBC files and the one for forms.
|
|
||||||
The options _UseFilesPerDBC_, _RedirectFilePerDBCToMain_ and _ItemPerDBCCheck_ will be ignored for DBC,
|
|
||||||
if _OldFilesPerDBC_ is set to 0.
|
|
||||||
Setting _OldFilesPerDBC_ to 1 will inhertit the values from the \*class\* options.
|
|
||||||
If _OldFilesPerDBC_ is set to 0 after it was active, the values of the three options are rejected at all and reset to the corresponding \*class\* values.
|
|
||||||
For Forms, options _UseFormPerFile_, _RedirectFormPerFileToMain_, _RedirectFormType_ and _FormPerFileCheck_ will be ignored,
|
|
||||||
if _UseFormSettings_ is set to 0.
|
|
||||||
Setting _UseFormSettings_ to 1 will inhertit the values from the \*class\* options.
|
|
||||||
If _UseFormSettings_ is set to 0 after it was active, the values of the four options are rejected at all and reset to the corresponding \*class\* values.
|
|
||||||
|
|
||||||
|
|
||||||
### File Capitalization
|
### File Capitalization
|
||||||
FoxBin2Prg takes care of file capitalization (their extension, specifically),
|
FoxBin2Prg takes care of file capitalization (their extension, specifically),
|
||||||
using another program called ("filename_caps.exe") for capitalizing input files and output files.
|
using another program called ("filename_caps.exe") for capitalizing input files and output files.
|
||||||
@@ -690,20 +509,22 @@ This is a list of available methods and properties:
|
|||||||
|
|
||||||
| Method()/Property<br/>Syntax | Description |
|
| Method()/Property<br/>Syntax | Description |
|
||||||
| -| - |
|
| -| - |
|
||||||
| **execute**<br/>loCnv.execute( cInputFile [,cType [,cTextName [,lGenText [,cDontShowErrors [,cDebug [,cDontShowProgress [,oModule [,oEx [,lRelanzarError [,cOriginalFileName [,cRecompile [,cNoTimestamps [,cBackupLevels [,cClearUniqueID [,cOptimizeByFilestamp [,cCFG_File](,cType-[,cTextName-[,lGenText-[,cDontShowErrors-[,cDebug-[,cDontShowProgress-[,oModule-[,oEx-[,lRelanzarError-[,cOriginalFileName-[,cRecompile-[,cNoTimestamps-[,cBackupLevels-[,cClearUniqueID-[,cOptimizeByFilestamp-[,cCFG_File ] ] ] ] ] ] ] ] ] ] ] ] ] ] ) | Main execution method to start a conversion<br/> See [Object version](./FoxBin2Prg_Object.md#execute) |
|
| **execute**<br/>loCnv.execute( cInputFile [,cType [,cTextName;<br/>[,lGenText [,cDontShowErrors [,cDebug;<br/>[,cDontShowProgress [,oModule [,oEx;<br/>[,lRelanzarError [,cOriginalFileName [,cRecompile;<br/>[,cNoTimestamps [,cBackupLevels [,cClearUniqueID;<br/>[,cOptimizeByFilestamp ,cCFG_File ] ] ] ] ] ] ] ] ] ] ] ] ] ] ) | Main execution method to start a conversion<br/> See [Object version](./FoxBin2Prg_Object.md#execute) |
|
||||||
| **conversionSupportType**<br/>loCnv.conversionSupportType( cFilename ) | Return the code of the support type (0,1,2,4,8) |
|
| **conversionSupportType**<br/>loCnv.conversionSupportType( cFilename ) | Return the code of the support type (0,1,2,4,8) |
|
||||||
| **get_DBF_Configuration**<br/>loCnv.get_DBF_Configuration( cInputFile, @oOutDbfCfg ) | Returns 1 if a CFG is found for the indicated DBF, or 0 if not |
|
| **get_DBF_Configuration**<br/>loCnv.get_DBF_Configuration( cInputFile, @oOutDbfCfg ) | Returns 1 if a CFG is found for the indicated DBF, or 0 if not |
|
||||||
| **hasSupport_Bin2Prg**<br/>loCnv.hasSupport_Bin2Prg( cFilename.ext )<br/>loCnv.hasSupport_Bin2Prg( cExt ) | Returns .T. if there is support for converting the file or filetype indicated to _text_ |
|
| **hasSupport_Bin2Prg**<br/>loCnv.hasSupport_Bin2Prg( cFilename.ext )<br/>loCnv.hasSupport_Bin2Prg( cExt ) | Returns .T. if there is support for converting the file or filetype indicated to _text_ |
|
||||||
| **hasSupport_Prg2Bin**<br/>loCnv.hasSupport_Prg2Bin( cFilename.ext )<br/>loCnv.hasSupport_Prg2Bin( cExt ) | Returns .T. if there is support for converting the file or filetype indicated to _Binary_ |
|
| **hasSupport_Prg2Bin**<br/>loCnv.hasSupport_Prg2Bin( cFilename.ext )<br/>loCnv.hasSupport_Prg2Bin( cExt ) | Returns .T. if there is support for converting the file or filetype indicated to _Binary_ |
|
||||||
| **evaluateConfiguration**<br/>loCnv.evaluateConfiguration( cDontShowProgress [,cDontShowErrors [,cNoTimestamps [,cDebug [,cRecompile [,cBackupLevels [,cClearUniqueID [,cOptimizeByFilestamp [,cInputFile [,cInputFileTypeType [,cCFG_File](,cDontShowErrors-[,cNoTimestamps-[,cDebug-[,cRecompile-[,cBackupLevels-[,cClearUniqueID-[,cOptimizeByFilestamp-[,cInputFile-[,cInputFileTypeType-[,cCFG_File) ] ] ] ] ] ] ] ] ) | Forces FoxBin2Prg to process the directory indicated in the cInputFile and update any CFG in the directory or their parents |
|
| **evaluateConfiguration**<br/>loCnv.evaluateConfiguration( cDontShowProgress;<br/>[,cDontShowErrors [,cNoTimestamps [,cDebug;<br/>[,cRecompile [,cBackupLevels [,cClearUniqueID;<br/>[,cOptimizeByFilestamp [,cInputFile [,cInputFileTypeType;<br/>[,cCFG_File] ] ] ] ] ] ] ] ] ) | Forces FoxBin2Prg to process the directory indicated in the cInputFile and update any CFG in the directory or their parents |
|
||||||
| **loadProgressbarForm**<br/>loCnv.loadProgressbarForm() | Load and show the progressbar form as upper level window |
|
| **loadProgressbarForm**<br/>loCnv.loadProgressbarForm() | Load and show the progressbar form as upper level window |
|
||||||
| **unloadProgressbarForm**<br/>loCnv.unloadProgressbarForm() | Hide and unload the progressbar form |
|
| **unloadProgressbarForm**<br/>loCnv.unloadProgressbarForm() | Hide and unload the progressbar form |
|
||||||
| **updateProgressbar**<br/>loCnt.updateProgressbar( cText, nValue, nTotal, nType ) | Update the progressbar and the message. nType indicates which progressbar to update, being 0=1st PB and 1=2nd PB |
|
| **updateProgressbar**<br/>loCnt.updateProgressbar( cText, nValue, nTotal, nType ) | Update the progressbar and the message. nType indicates which progressbar to update, being 0=1st PB and 1=2nd PB |
|
||||||
| **get_DirSettings**<br/>loCnv.get_DirSettings( cDir ) | Returns a CFG object with the settings that are applied on the indicated directory<br/>See [Configuration file](#configuration-file) for the properties and how they fit to the settings file. |
|
| **get_DirSettings**<br/>loCnv.get_DirSettings( cDir ) | Returns a CFG object with the settings that are applied on the indicated directory<br/>See [Configuration file](./FoxBin2Prg_Settings.md#configuration-file) for the properties and how they fit to the settings file. |
|
||||||
| **get_Ext2FromExt**<br/>loCnv.get_Ext2FromExt( cExt ) | Returns the _text extension_ corresponding to the _Binary_ extension indicated |
|
| **get_Ext2FromExt**<br/>loCnv.get_Ext2FromExt( cExt ) | Returns the _text extension_ corresponding to the _Binary_ extension indicated |
|
||||||
| **get_Processed**<br/>loCnv.get_Processed( @aProcessed, cFileMask ) | Returns an array with the status of the files being processed or that will be processed in no-real-process-mode if you set `l_ProcessFiles=.F.` before the call. Columns returned are 6: "cFile, cInOutType, cProcessed, cHasErrors, cSupported, cExpanded"` |
|
| **get_Processed**<br/>loCnv.get_Processed( @aProcessed, cFileMask ) | Returns an array with the status of the files being processed or that will be processed in no-real-process-mode.<br/>No-real-process-mode is set if `l_ProcessFiles=.F.` before the call.<br/>Columns returned are 6: "cFile, cInOutType, cProcessed, cHasErrors, cSupported, cExpanded"` |
|
||||||
| **clearProcessedFiles**<br/>loCnv.clearProcessedFiles() | Clear the statistics and the cache about processed files. If a file was processed and is already processed, being not cached will force to process it again |
|
| **clearProcessedFiles**<br/>loCnv.clearProcessedFiles() | Clear the statistics and the cache about processed files. If a file was processed and is already processed, being not cached will force to process it again |
|
||||||
| **wasProcessed**<br/>loCnv.wasProcessed( cFile ) | Returns .T. if the fullpath-file was processed, searching in the internal cache |
|
| **wasProcessed**<br/>loCnv.wasProcessed( cFile ) | Returns .T. if the fullpath-file was processed, searching in the internal cache |
|
||||||
|
| **c_OutputFile**<br/>loCnv.c_OutputFile = cPath | A folder (or file) to write the output to. If not used, output be the source path.<br/>Similar to exe/prgs parameter. _cOutputFolder_- |
|
||||||
|
| **l_ProcessFiles**<br/>loCnv.l_ProcessFiles = Boolean | Controls if _Execute_ will process the files or simulate. If simulated, the files in the process can be read via _get_Processed_ method. Intended for expansions of FoxBin2Prg. |
|
||||||
|
|
||||||
#### Renamed
|
#### Renamed
|
||||||
This is the translation table of old method names up to v1.19.41 and the new names:
|
This is the translation table of old method names up to v1.19.41 and the new names:
|
||||||
@@ -787,9 +608,8 @@ For options on integrating FoxBin2Prg with SCM tools, look at this topic:
|
|||||||
See [FoxBin2Prg and use with git](./FoxBin2Prg_git.md)
|
See [FoxBin2Prg and use with git](./FoxBin2Prg_git.md)
|
||||||
|
|
||||||
----
|
----
|
||||||
Last changed: _2023/09/06_
|
|
||||||

|

|
||||||
This project is part of [VFPX](https://vfpx.github.io/).
|
This project is part of [VFPX](https://vfpx.github.io/).
|
||||||
|
|
||||||
----
|
----
|
||||||
Last changed: _2026/06/20_ 
|
Last changed: _2026/06/21_ 
|
||||||
@@ -5,7 +5,7 @@ Documentation of FoxBin2Prg - A Binary to Text converter for MS Visual Foxpro 9
|
|||||||
FoxBin2Prg might be used as an EXE either from Windows or VFP, or as as prg from inside VFP in a [command line](./FoxBin2Prg_Run.md) way.
|
FoxBin2Prg might be used as an EXE either from Windows or VFP, or as as prg from inside VFP in a [command line](./FoxBin2Prg_Run.md) way.
|
||||||
This document deals with the integration as an VFP Object using VFP based objects.
|
This document deals with the integration as an VFP Object using VFP based objects.
|
||||||
|
|
||||||
For settings, API and other realted stuff see [Internals](./FoxBin2Prg_Internals.md).
|
For settings see [Configuration](./FoxBin2Prg_Settings.md), for API and other related stuff see [Internals](./FoxBin2Prg_Internals.md).
|
||||||
|
|
||||||
The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project.
|
The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project.
|
||||||
Pictures are taken from the original project.
|
Pictures are taken from the original project.
|
||||||
@@ -42,7 +42,10 @@ Transforming file(s) works like
|
|||||||
`obj.execute(cInputFile [,cType [,cTextName [,lGenText [,cDontShowErrors [,cDebug [,cDontShowProgress [,oModule [,oEx [,lRelanzarError [,cOriginalFileName [,cRecompile [,cNoTimestamps [,cBackupLevels [,cClearUniqueID [,cOptimizeByFilestamp [,cCFG_File] ] ] ] ] ] ] ] ] ] ] ] ] ] ])`
|
`obj.execute(cInputFile [,cType [,cTextName [,lGenText [,cDontShowErrors [,cDebug [,cDontShowProgress [,oModule [,oEx [,lRelanzarError [,cOriginalFileName [,cRecompile [,cNoTimestamps [,cBackupLevels [,cClearUniqueID [,cOptimizeByFilestamp [,cCFG_File] ] ] ] ] ] ] ] ] ] ] ] ] ] ])`
|
||||||
A lot of the parameters are the same as calling the [command line](./FoxBin2Prg_Run.md),
|
A lot of the parameters are the same as calling the [command line](./FoxBin2Prg_Run.md),
|
||||||
some additional are added and some are not string type.
|
some additional are added and some are not string type.
|
||||||
Some settings will overwrite configuration. Using an object as cCFG_File will overwrite all configuration.
|
Some settings will overwrite configuration.
|
||||||
|
Using an file as cCFG_File with `InhibitInheritance=3` set will overwrite all configuration. See [Configuration file(s)](./FoxBin2Prg_Settings.md) for more information. This file will be read as first setting, see [Multi config](./FoxBin2Prg_Settings.md#multi-configuration).
|
||||||
|
Using an object as oCFG (instead of cCFG_File) will overwrite all configuration and only this settings will be used.
|
||||||
|
|
||||||
|
|
||||||
| Parameter | Value (_Default_) | Description |
|
| Parameter | Value (_Default_) | Description |
|
||||||
| ----- | ----- | ----- |
|
| ----- | ----- | ----- |
|
||||||
@@ -61,21 +64,21 @@ Some settings will overwrite configuration. Using an object as cCFG_File will ov
|
|||||||
| | -t | Create per-table configuration file template <cInputFile> or, if first parameter is empty and a table open, \<tablename\>._cfg in table folder. With inactive default values. |
|
| | -t | Create per-table configuration file template <cInputFile> or, if first parameter is empty and a table open, \<tablename\>._cfg in table folder. With inactive default values. |
|
||||||
| cTextName | Text filename. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode. File to use. |
|
| cTextName | Text filename. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode. File to use. |
|
||||||
| lGenText | .T., .F. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode. .T.=Generates Text, .F.=Generates Binary. <br/> **Note:** _cType_ have predominance over _lGenText_ |
|
| lGenText | .T., .F. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode. .T.=Generates Text, .F.=Generates Binary. <br/> **Note:** _cType_ have predominance over _lGenText_ |
|
||||||
| cDontShowErrors | _0_, 1 | '1' for NOT showing errors in MESSAGEBOX |
|
| cDontShowErrors | _0_, 1 | '1' for NOT showing errors in MESSAGEBOX.<br/>This has precedence over the _DontShowErrors_ setting. |
|
||||||
| cDebug | _0_, 1, 2 | '0 'no debug, '1' for generating process LOGs, stop on errors, '2' like '1' and special log.<br/>This has precedence over any value in the config files. Only the first valid value will be used. |
|
| cDebug | _0_, 1, 2 | '0 'no debug, '1' for generating process LOGs, stop on errors, '2' like '1' and special log.<br/>This has precedence over the _Debug_ value in the config files. |
|
||||||
| cDontShowProgress | 0, _1_, 2 | '0' show progress, '1' for **not** showing the process window, '2' Show only for multi-file processing |
|
| cDontShowProgress | 0, _1_, 2 | '0' show progress, '1' for **not** showing the process window, '2' Show only for multi-file processing.<br/>This has precedence over the _ShowProgressbar_ setting. Value "0","1" is inverted to the setting. |
|
||||||
| oModule | | Internal use for Unit Testing |
|
| oModule | | Internal use for Unit Testing |
|
||||||
| oEx | | Exception object, return for errorhandling |
|
| oEx | | Exception object, return for errorhandling |
|
||||||
| lRelanzarError | .T.. _.F._ | Throw error to caller of _.Execute()_ |
|
| lRelanzarError | .T.. _.F._ | Throw error to caller of _.Execute()_ |
|
||||||
| cOriginalFileName | text | used in those cases in which inputFile is a temporary filename and you want to generate the correct filename on the header of the text version |
|
| cOriginalFileName | text | used in those cases in which inputFile is a temporary filename and you want to generate the correct filename on the header of the text version |
|
||||||
| cRecompile | 0, _1_ | Indicates recompile ('1') the binary once generated. <br/> True if called from SCCAPI (SCCTEXT.PRG) compatibility mode. |
|
| cRecompile | 0, _1_ | Indicates recompile ('1') the binary once generated. <br/> True if called from SCCAPI (SCCTEXT.PRG) compatibility mode. |
|
||||||
| | path | The binary is compiled from this path |
|
| | path | The binary is compiled from this path |
|
||||||
| cNoTimestamps | 0, _1_ | Indicates if timestamp must be cleared ('1' or empty) or not ('0') |
|
| cNoTimestamps | 0, _1_ | Indicates if timestamp must be cleared ('1' or empty) or not ('0'),<br/>This has precedence over the _NoTimestamps_ setting. |
|
||||||
| cBackupLevels | 0, _1_, .. | "0" no Bakup, "1", one level _filename_.bak, "n" n levels of Backup _filename_.n.bak |
|
| cBackupLevels | 0, _1_, .. | "0" no Bakup, "1", one level _filename_.bak, "n" n levels of Backup _filename_.n.bak |
|
||||||
| cClearUniqueID | 0, _1_ | 0=Keep UniqueID in text files, 1=Clear Unique ID. Useful for Diff and Merge |
|
| cClearUniqueID | 0, _1_ | 0=Keep UniqueID in text files, 1=Clear Unique ID. Useful for Diff and Merge.<br/>This has precedence over the _ClearUniqueID_ setting. |
|
||||||
| cOptimizeByFilestamp | _0_, 1 | 1=Optimize file regeneration depending on file timestamp.<br/><span style="background-color: gold;">Dangerous while working with branches!</span> |
|
| cOptimizeByFilestamp | _0_, 1 | 1=Optimize file regeneration depending on file timestamp.<br/>This has precedence over the _OptimizeByFilestamp_ setting.<br/><span style="background-color: gold;">Dangerous while working with branches!</span> |
|
||||||
| cCFG_File<br/>or oCFG | filename | Indicates a CFG filename for not using the default on foxbin2prg directory or path. |
|
| cCFG_File<br/>or oCFG | filename | Indicates a CFG filename for not using the default on foxbin2prg directory or path.<br/>See [Configuration file(s)](./FoxBin2Prg_Settings.md) and [Multi config](./FoxBin2Prg_Settings.md#multi-configuration) for more information. |
|
||||||
| | object | An object containing configuration options to use. See [Internals](./FoxBin2Prg_Internals.md) for object creation. |
|
| | object | An object containing configuration options to use. See [Internals](./FoxBin2Prg_Internals.md) for object creation.<br/>If this is set, no additional configuration file will be read. |
|
||||||
|
|
||||||
#### cOutputFolder
|
#### cOutputFolder
|
||||||
The procedural call of FoxBin2Prg like
|
The procedural call of FoxBin2Prg like
|
||||||
@@ -105,4 +108,4 @@ Return value is 0=OK, 1=Error.
|
|||||||
This project is part of [VFPX](https://vfpx.github.io/).
|
This project is part of [VFPX](https://vfpx.github.io/).
|
||||||
|
|
||||||
----
|
----
|
||||||
Last changed: _2026/06/18_ 
|
Last changed: _2026/06/21_ 
|
||||||
@@ -16,8 +16,13 @@ As far as possible these are the original documents. Changes are added where fun
|
|||||||
- [PRG](#prg)
|
- [PRG](#prg)
|
||||||
- [Parameters](#parameters)
|
- [Parameters](#parameters)
|
||||||
- [Usage](#usage)
|
- [Usage](#usage)
|
||||||
|
- [Usage 1](#usage-1)
|
||||||
|
- [Usage 2](#usage-2)
|
||||||
|
- [Usage 3](#usage-3)
|
||||||
- [Return values](#return-values)
|
- [Return values](#return-values)
|
||||||
- [Examples](#Examples)
|
- [Examples](#Examples)
|
||||||
|
- [Using the "EXE" version](#using-the-exe-version)
|
||||||
|
- [Using the "PRG" version](#using-the-prg-version)
|
||||||
- [Explorer SendTo](#explorer-sendto)
|
- [Explorer SendTo](#explorer-sendto)
|
||||||
|
|
||||||
----
|
----
|
||||||
@@ -28,13 +33,14 @@ Since the EXE is basically the prg packed with some controling files, the way to
|
|||||||
The knowledge of differences in calling, DO .. WITH syntax separating parameters with "," and the DOS way off calling will be assumed.
|
The knowledge of differences in calling, DO .. WITH syntax separating parameters with "," and the DOS way off calling will be assumed.
|
||||||
Do the similarity of the call, the prg version takes all parameters as strings too.
|
Do the similarity of the call, the prg version takes all parameters as strings too.
|
||||||
|
|
||||||
For settings and other related stuff see [Internals](./FoxBin2Prg_Internals.md).
|
For settings see [Configuration](./FoxBin2Prg_Settings.md), for API and other related stuff see [Internals](./FoxBin2Prg_Internals.md).
|
||||||
|
|
||||||
## Differences on excecution
|
## Differences on excecution
|
||||||
### EXE
|
### EXE
|
||||||
The exe contains the most controling structures and the program itself.
|
The exe contains the most controling structures and the program itself.
|
||||||
Alongside the _FoxBin2Prg.exe_ must be _\_FileName\_Caps.exe_ .
|
Alongside the _FoxBin2Prg.exe_ must be _\_FileName\_Caps.exe_.
|
||||||
It is recomended to have a general _FoxBin2Prg.cfg_ configuration file in the folder with the EXE, but it will run without.
|
It is recomended to have a general _FoxBin2Prg.cfg_ configuration file in the folder with the EXE, but it will run without.
|
||||||
|
See [Configuration](./FoxBin2Prg_Settings.md) for information about settings.
|
||||||
|
|
||||||
Remember, the exe(s) needs to be created first, and they must be compiled with the version of VFP you use, for example VFPA.
|
Remember, the exe(s) needs to be created first, and they must be compiled with the version of VFP you use, for example VFPA.
|
||||||
|
|
||||||
@@ -43,7 +49,7 @@ The prg is just the program and needs to find the controling structures. In part
|
|||||||
- _FileName_Caps.exe_
|
- _FileName_Caps.exe_
|
||||||
- _Props*.txt_
|
- _Props*.txt_
|
||||||
- _FileName_Caps.exe_
|
- _FileName_Caps.exe_
|
||||||
- _FoxBin2Prg.cfg_ is recomended
|
- _FoxBin2Prg.cfg_ is recomended, see [Configuration](./FoxBin2Prg_Settings.md)
|
||||||
|
|
||||||
#### Note
|
#### Note
|
||||||
All mentioned files need to be in the same folder. You can't use just the PRG without the rest of the mentioned files.
|
All mentioned files need to be in the same folder. You can't use just the PRG without the rest of the mentioned files.
|
||||||
@@ -61,12 +67,13 @@ Remember that using the prg style, parameters must be wrapped in string delimite
|
|||||||
#### Note
|
#### Note
|
||||||
Do to the compatibility with VSS the usage of _cInputFile_ and _cType_ is odd.
|
Do to the compatibility with VSS the usage of _cInputFile_ and _cType_ is odd.
|
||||||
|
|
||||||
#### Important note:
|
#### Important note
|
||||||
When you process a directory, it is used as the base for the compilation of _Binaries_,
|
When you process a directory, it is used as the base for the compilation of _Binaries_,
|
||||||
and because of this, never process more than one directory in the same process,
|
and because of this, never process more than one directory in the same process,
|
||||||
because the compilation may not be ok. To process more than one directory (or project),
|
because the compilation may not be ok. To process more than one directory (or project),
|
||||||
just select and process each one independently, in parallel if you like, but in different processes.
|
just select and process each one independently, in parallel if you like, but in different processes.
|
||||||
|
|
||||||
|
---
|
||||||
## Usage
|
## Usage
|
||||||
### Usage 1
|
### Usage 1
|
||||||
`FoxBin2Prg.EXE cInputFile [,cType [,cTextName [,lGenText [,cDontShowErrors [,cDebug [,cDontShowProgress [,cOriginalFileName [,cRecompile [,cNoTimestamps [,cCFG_File [,cOutputFolder ] ] ] ] ] ] ] ] ] ] ] ]`
|
`FoxBin2Prg.EXE cInputFile [,cType [,cTextName [,lGenText [,cDontShowErrors [,cDebug [,cDontShowProgress [,cOriginalFileName [,cRecompile [,cNoTimestamps [,cCFG_File [,cOutputFolder ] ] ] ] ] ] ] ] ] ] ] ]`
|
||||||
@@ -86,14 +93,14 @@ just select and process each one independently, in parallel if you like, but in
|
|||||||
| | d, D, K, B, M, R, V | SCCAPI (SCCTEXT.PRG) compatibility mode, query the conversion support for the file type specified <br /> Types: d=DBC, D=DBF, K=Form, B=Label, M=Menu, R=Report, V=Class |
|
| | d, D, K, B, M, R, V | SCCAPI (SCCTEXT.PRG) compatibility mode, query the conversion support for the file type specified <br /> Types: d=DBC, D=DBF, K=Form, B=Label, M=Menu, R=Report, V=Class |
|
||||||
| cTextName | Text filename. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode. File to use. |
|
| cTextName | Text filename. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode. File to use. |
|
||||||
| lGenText | .T., .F. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode.<br/>.T.=Generates _Text_, .F.=Generates _Binary_.<br/>**Note:** _cType_ have predominance over _lGenText_ |
|
| lGenText | .T., .F. | Only for SCCAPI (SCCTEXT.PRG) compatibility mode.<br/>.T.=Generates _Text_, .F.=Generates _Binary_.<br/>**Note:** _cType_ have predominance over _lGenText_ |
|
||||||
| cDontShowErrors | _0_, 1 | '1' for NOT showing errors in MESSAGEBOX |
|
| cDontShowErrors | _0_, 1 | '1' for NOT showing errors in MESSAGEBOX.<br/>This has Precedence Over The _Dontshowerrors_ setting. |
|
||||||
| cDebug | _0_, 1, 2 | '0 'no debug, '1' for generating process LOGs, stop on errors, '2' like '1' and special log.<br/>This has precedence over any value in the config files. |
|
| cDebug | _0_, 1, 2 | '0 'no debug, '1' for generating process LOGs, stop on errors, '2' like '1' and special log.<br/>This has precedence over any value in the config files.<br/>This has Precedence Over The _Debug_ setting. |
|
||||||
| cDontShowProgress | 0, _1_, 2 | '0' show progress, '1' for **not** showing the process window, '2' Show only for multi-file processing |
|
| cDontShowProgress | 0, _1_, 2 | '0' show progress, '1' for **not** showing the process window, '2' Show only for multi-file processing<br/>This has Precedence Over The _ShowProgressbar_ setting. Value "0","1" is inverted to the setting. |
|
||||||
| cOriginalFileName | text | used in those cases in which inputFile is a temporary filename and you want to generate the correct filename on the header of the _Text_ version |
|
| cOriginalFileName | text | used in those cases in which inputFile is a temporary filename and you want to generate the correct filename on the header of the _Text_ version |
|
||||||
| cRecompile | 0, _1_ | Indicates recompile ('1') the _Binary_ once generated. <br/> True if called from SCCAPI (SCCTEXT.PRG) compatibility mode. |
|
| cRecompile | 0, _1_ | Indicates recompile ('1') the _Binary_ once generated. <br/> True if called from SCCAPI (SCCTEXT.PRG) compatibility mode. |
|
||||||
| | path | The _Binary_ is compiled from this path |
|
| | path | The _Binary_ is compiled from this path |
|
||||||
| cNoTimestamps | 0, _1_ | Indicates if timestamp must be cleared ('1' or empty) or not ('0') |
|
| cNoTimestamps | 0, _1_ | Indicates if timestamp must be cleared ('1' or empty) or not ('0').<br/>This has Precedence Over The _NoTimestamps_ setting. |
|
||||||
| cCFG_File | filename | Indicates a special CFG filename for default values.<br/>Note, if the "regular" config files are used or not, is controlled by the setting *AllowInheritance* in *this** file. |
|
| cCFG_File | filename | Indicates a special CFG filename for default values.<br/>Note, if the "regular" config files are used or not, is controlled by the setting *AllowInheritance* in *this** file.<br/>See [Configuration](./FoxBin2Prg_Settings.md) |
|
||||||
| cOutputFolder | folder | Optional. A folder to write the output to. If not used, output be the source path. |
|
| cOutputFolder | folder | Optional. A folder to write the output to. If not used, output be the source path. |
|
||||||
|
|
||||||
#### Note #1
|
#### Note #1
|
||||||
@@ -119,7 +126,7 @@ The filename is an external variable parameter received when SendingTo FoxBin2Pr
|
|||||||
| | If _cOutputFile_ is empty, a file FOXBIN2PRG.\_CFG will be created in default foder. |
|
| | If _cOutputFile_ is empty, a file FOXBIN2PRG.\_CFG will be created in default foder. |
|
||||||
| -t (t) | creates a template table-config-file _cOutputFile_ ( like \_TableName\_.dbf.cfg ) |
|
| -t (t) | creates a template table-config-file _cOutputFile_ ( like \_TableName\_.dbf.cfg ) |
|
||||||
| cOutputFile | config file to create<br/>**Note: if empty it creates *and overwrite* FOXBIN2PRG.CFG or the table config file in default folder.** |
|
| cOutputFile | config file to create<br/>**Note: if empty it creates *and overwrite* FOXBIN2PRG.CFG or the table config file in default folder.** |
|
||||||
| cCFG_File | Indicates a special *input* CFG filename for default values<br/> **Note, if the "regular" config files are used or not, is controlled by the setting *AllowInheritance* in *this* file.** |
|
| cCFG_File | Indicates a special *input* CFG filename for default values<br/> **Note, if the "regular" config files are used or not, is controlled by the setting *AllowInheritance* in *this* file.**<br/>See [Configuration](./FoxBin2Prg_Settings.md) |
|
||||||
| cDebug | '1' for generating process LOGs, stop on errors<br/>This has precedence over any value in the config files. |
|
| cDebug | '1' for generating process LOGs, stop on errors<br/>This has precedence over any value in the config files. |
|
||||||
|
|
||||||
### Usage 3
|
### Usage 3
|
||||||
@@ -141,7 +148,9 @@ Calling inside VFP with `DO FoxBin2Prg.EXE` works with this dashed parameters.
|
|||||||
Return value via _ErrorLevel_ is 0=OK, 1=Error.
|
Return value via _ErrorLevel_ is 0=OK, 1=Error.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
### Using the "EXE" version: (useful for calling from 3rd party programs)
|
### Using the "EXE" version
|
||||||
|
**Useful for calling from 3rd party programs.**
|
||||||
|
Note, the EXE must be compiled to the VFP version you are using.
|
||||||
|
|
||||||
| command | description |
|
| command | description |
|
||||||
| - | - |
|
| - | - |
|
||||||
@@ -153,7 +162,8 @@ Return value via _ErrorLevel_ is 0=OK, 1=Error.
|
|||||||
| `FOXBIN2PRG.EXE "<path>\file.vcx::cus_client"` | Generates only the _Text_ version of the individual class cus_client of file.vcx (with UseClassPerFile:1 or 2) |
|
| `FOXBIN2PRG.EXE "<path>\file.vcx::cus_client"` | Generates only the _Text_ version of the individual class cus_client of file.vcx (with UseClassPerFile:1 or 2) |
|
||||||
| `FOXBIN2PRG.EXE "<path>\proj.pj2" "*" \| find /V ""` | Generates the _Binary_ files for all the files in the PJ2 and outputs to stdOut |
|
| `FOXBIN2PRG.EXE "<path>\proj.pj2" "*" \| find /V ""` | Generates the _Binary_ files for all the files in the PJ2 and outputs to stdOut |
|
||||||
|
|
||||||
### Using the "PRG" version:
|
### Using the "PRG" version
|
||||||
|
**Useful for calling from in IDE, in special if several versions of VFP are active.**
|
||||||
|
|
||||||
| command | description |
|
| command | description |
|
||||||
| - | - |
|
| - | - |
|
||||||
@@ -184,4 +194,4 @@ FoxBin2Prg.lnk <path>\foxbin2prg.exe "INTERACTIVE-SHOWMSG"
|
|||||||
This project is part of [VFPX](https://vfpx.github.io/).
|
This project is part of [VFPX](https://vfpx.github.io/).
|
||||||
|
|
||||||
----
|
----
|
||||||
Last changed: _2026/06/20_ 
|
Last changed: _2026/06/21_ 
|
||||||
|
|||||||
397
docs/FoxBin2Prg_Settings.md
Normal file
397
docs/FoxBin2Prg_Settings.md
Normal file
@@ -0,0 +1,397 @@
|
|||||||
|
# FoxBin2Prg Configuration
|
||||||
|
Documentation of FoxBin2Prg - A Binary to Text converter for MS Visual Foxpro 9
|
||||||
|
|
||||||
|
## Purpose of this document
|
||||||
|
This document shows the use of configuration files and the varius setrtings on FoxBin2Prg.
|
||||||
|
|
||||||
|
----
|
||||||
|
## Table of contents
|
||||||
|
- [Configuration file](#configuration-file)
|
||||||
|
- [Multi config](#multi-configuration)
|
||||||
|
- [Example](#example)
|
||||||
|
- [Configuration file per table](#configuration-file-per-table)
|
||||||
|
- [Excluding directories](#excluding-directories)
|
||||||
|
|
||||||
|
## Configuration file
|
||||||
|
The configuration how to run FoxBin2Prg is stored in configuration files, FoxBin2Prg.cfg for general settings, and [Configuration file per table](#configuration-file-per-table).
|
||||||
|
|
||||||
|
It is possible to create a template or a config with all options and comments via
|
||||||
|
```
|
||||||
|
DO FOXBIN2PRG.PRG WITH "-c","template.cfg" &&==> Generates a template for FoxBin2Prg.cfg config file with newest settings
|
||||||
|
DO FOXBIN2PRG.PRG WITH "-C","config.cfg" &&==> Generates a config file like FoxBin2Prg.cfg with recent settings of path of second parameter
|
||||||
|
```
|
||||||
|
|
||||||
|
An example of a template is given in [Example](#example)
|
||||||
|
See [command line](./FoxBin2Prg_Run.md#usage-2).
|
||||||
|
The config file is used to move local setting to a different comupter or for changes while branching.
|
||||||
|
|
||||||
|
The options in the template (or in the config that ships with FoxBin2Prg) are commented out.
|
||||||
|
To activate an option remove the asterix and set appropriate value.
|
||||||
|
|
||||||
|
There is a [Multi config](#multi-configuration), that allows to have global settings with specific local settings.
|
||||||
|
If a setting does not follow inheritance, it is mentioned in the table below.
|
||||||
|
|
||||||
|
These are the FoxBin2Prg.cfg configuration file settings and their meaning.
|
||||||
|
The second line in the keyword column is the name of the respective property (if there is one)
|
||||||
|
in the settings object returned by get_DirSettings method of the API object. See [PEM](./FoxBin2Prg_Internals.md#pem).
|
||||||
|
|
||||||
|
| FoxBin2Prg.cfg keywords<br/>Property of settings object | Value (_Default_) | Description |
|
||||||
|
| ----- | ----- | ----- |
|
||||||
|
| Language | _(auto)_,<br/>EN, FR, ES, DE | Language of templates, shown messages and LOGs. EN=English, FR=French, ES=Espa<70>ol, DE=German, Not defined = AUTOMATIC (using VERSION(3)) ||
|
||||||
|
| DontShowProgress<br/>n_ShowProgressbar | 0 | **Deprecated**. Replaced by ShowProgressbar option from v1.19.40, see below.<br/>The values of 0 and 1 are inverted to ShowProgressbar. |
|
||||||
|
| ShowProgressbar<br/>n_ShowProgressbar | 0, _1_, 2 | 0=Don't show progressbar,<br/>1=Always show a progress bar,<br/>2=Only show it when processing multiple-files.<br/>**If set via parameter _cDontShowProgress_, this is ignored.<br/>_cDontShowProgress_ has value "0","1" inverted to the property.** |
|
||||||
|
| DontShowErrors<br/>n/a | _0_, 1 | 0=show message errors in a modal messagebox. (default)<br/>1=don't show errors<br/>**If set via parameter _cDontShowErrors_, this is ignored.**<br/>**There is no inheritance for this setting. First occurance wins.** |
|
||||||
|
| ExtraBackupLevels<br/>n/a | 0, _1_, n | <br/>0=No backup<br/>1=One backupfile _\_filename\_.BAK_ (default)<br/>n=n levels of backup in style _\_filename\_.n.BAK_<br/>**There is no inheritance for this setting. First occurance wins.** |
|
||||||
|
| <<br/>n_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 set via parameter _cDebug_, this is ignored.** |
|
||||||
|
| BackgroundImage<br/>c_BackgroundImage | \<cFile\> | Backgroundimage for process form |
|
||||||
|
| HomeDir<br/>n_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<br/>n_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<br/>n_InhibitInheritance | _0_, 1, 2, 3 | **This settings is for config file via parameter only**. See [Multi config](#multi-configuration).<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 |
|
||||||
|
|||
|
||||||
|
| XXX_Conversion_Support | n | Defines the conversion operation per filetype |
|
||||||
|
| | | For code:<br/> 0=No support,<br/>1=Generate _Text_ (Diff),<br/>2=Generate _Text_ and _Bin_ (Merge) |
|
||||||
|
| | | For complex data:<br/> (PJX / DBC / DBF): 0=No support,<br/>1=Generate Header _Text_ only (Diff),<br/>2=Generate Header _Text_ and _Bin_ (Merge/Only Structure!),<br/>4=Generate _Text_ with DATA (Diff),<br/>8=Export and Import DATA (Merge/Structure & Data) |
|
||||||
|
| PJX_Conversion_Support<br/>.n_PJX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional ((Merge/Only Structure!),<br/>4=Generate _Text_ with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data) and _bin_) support activated |
|
||||||
|
| VCX_Conversion_Support<br/>.n_VCX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated |
|
||||||
|
| SCX_Conversion_Support<br/>.n_SCX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated |
|
||||||
|
| FRX_Conversion_Support<br/>.n_FRX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated |
|
||||||
|
| LBX_Conversion_Support<br/>.n_LBX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated |
|
||||||
|
| MNX_Conversion_Support<br/>.n_MNX_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated |
|
||||||
|
| DBC_Conversion_Support<br/>.n_DBC_Conversion_Support | 0, 1, _2_ | Default value is 2 - Bidirectional (_Text_ and _bin_) support activated |
|
||||||
|
| DBF_Conversion_Support<br/>.n_DBF_Conversion_Support | 0, _1_, 2, 4, 8 | Default value is 1 - just _Text_ support activated.<br/>The support for regenerating DBFs structures (value = 2) are disabled by default to not overrite data accidentally. When activating bidirectional support, keep in mind that Data is not restored, just the structure and indexes!.<br/>A value of 4 is used to export Structure and Data, but exported data is not imported again.<br/>A value of 8 is used for bidirectional support (No General fields!). <br/> **Note:** This can be [changed per table](#configuration-file-per-table). |
|
||||||
|
| FKY_Conversion_Support<br/>.n_FKY_Conversion_Support | 0, _1_ | Default value is 1 - _Text_ support activated |
|
||||||
|
| MEM_Conversion_Support<br/>.n_MEM_Conversion_Support | 0, _1_ | Default value is 1 - _Text_ support activated |
|
||||||
|
|||
|
||||||
|
| CheckFileInPath<br/>n_CheckFileInPath | _0_, 1, 2, 3 |Determines how 2Txt deals with files not in the subfolders of the PJX. No handler for UNC paths.<br />0 = Ignore. Default<br />1 = Check and error out if file is not on same structure (for source control)<br />2 = Create absolute path if file is on different drive.<br />3 = Create absolute path if file is not in structure<br />See [Storing paths for pjx](./FoxBin2Prg_Internals.md#storing-paths-for-pjx) |
|
||||||
|
|||
|
||||||
|
| UseClassPerFile<br/>n_UseClassPerFile | _0_, 1, 2 | 0=One library _Text_ file,<br/>1=Multiple file.class.vc2 files,<br/>2=Multiple file.baseclass.class.vc2 files<br/>See [Create Class-Per-File](./FoxBin2Prg_Internals.md#create-class-per-file) |
|
||||||
|
| [RedirectClassPerFileToMain:](./FoxBin2Prg_Internals.md#redirectclassperfiletomain:)<br/>l_RedirectClassPerFileToMain | _0_, 1 | 0=Don't redirect to file.vcx,<br/>1=Redirect to file.vcx when selecting file.class.vc2<br/>RedirectClassType: 1 precedes this setting |
|
||||||
|
| RedirectClassType<br/>n_RedirectClassType | _0_, 1, 2 | For classes created with UseClassPerFile>0 in the form file[.baseclass].class.tx2 (vcx only) |
|
||||||
|
| | | 0=creates / refresh class in file.VCX and add / replace all other classes of this library |
|
||||||
|
| | | 1=creates / refresh class file[.baseclass].class.VCX and do not touch file.VCX |
|
||||||
|
| | | 2=creates / refresh class in file.VCX and do not touch other classes of file.VCX |
|
||||||
|
| [ClassPerFileCheck](./FoxBin2Prg_Internals.md#classperfilecheck)<br/>l_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](./FoxBin2Prg_Internals.md#create-file-per-form)<br/>l_UseFormSettings | _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<br/>n_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](./FoxBin2Prg_Internals.md#create-class-per-file) |
|
||||||
|
| [RedirectFormPerFileToMain](./FoxBin2Prg_Internals.md#redirectclassperfiletomain)<br/>l_RedirectFormPerFileToMain | _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<br/>n_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 |
|
||||||
|
| | | 2=creates / refresh class in Form.SCX and do not touch other classes of Form.SCX |
|
||||||
|
| [FormPerFileCheck](./FoxBin2Prg_Internals.md#classperfilecheck)<br/>l_FormPerFileCheck | _0_, 1 | 0=Don't check Form.Object.sc2 inclusion,<br/>1=Check Form.Object.sc2 inclusion<br/>Only used if import file is in Form[.baseclass].Object.sc2 syntax.<br/>Ignored for RedirectClassType: 2 |
|
||||||
|
|||
|
||||||
|
| OldFilesPerDBC<br/>l_OldFilesPerDBC | _0_, 1 | 0=Old Style,<br/>1=New style<br/>This controls the use of the _UseFilesPerDBC_, _RedirectFilePerDBCToMain_ and _ItemPerDBCCheck_ options.<br/>Only if this option is set, the **Form** options below will be read. |
|
||||||
|
| | | 0=New version inactive, options follow:<br/>UseFilesPerDBC=UseClassPerFile<br/>RedirectFilePerDBCToMain=RedirectClassPerFileToMain<br/>ItemPerDBCCheck=ClassPerFileCheck |
|
||||||
|
| | | 1=New version active, options active |
|
||||||
|
| | | Note: The options will be set to old style, if option is turned off. |
|
||||||
|
| UseFilesPerDBC<br/>n_UseFilesPerDBC | _0_, 1 | 0=One database dc2 file,<br/>1=Multiple file.\*.\*.dc2 files.<br/>See [Create File-Per-DBC](./FoxBin2Prg_Internals.md#create file-per-dbc)<br/>**Only if OldFilesPerDBC is 1** |
|
||||||
|
| | | 0=creates only a file.dc2 with all DBC (file) data |
|
||||||
|
| | | 1=creates a file.dc2 with DBC properties |
|
||||||
|
| | | and additional DBC files per DBC item (stored-proc, table, ..) |
|
||||||
|
| | | Note: recration only if RedirectFilePerDBCToMain is 1 |
|
||||||
|
| [RedirectFilePerDBCToMain](./FoxBin2Prg_Internals.md#redirectfileperdbctomain)<br/>l_RedirectFilePerDBCToMain | _0_, 1 | 0=Don't redirect to file.dc2,<br/>1=Redirect to file.tx2 when selecting file.item.*.dc2<br/>**Only if OldFilesPerDBC is 1** |
|
||||||
|
| [ItemPerDBCCheck](./FoxBin2Prg_Internals.md#itemperdbccheck)<br/>l_ItemPerDBCCheck | _0_, 1 | 0=Don't check file.item.*.dc2 inclusion,<br/> 1=Check file.item.*.dc2 inclusion<br/>**Only if OldFilesPerDBC is 1**|
|
||||||
|
|||
|
||||||
|
| NoTimestamps<br/>n/a | 0, _1_ | 0=Do not clear<br/>1=Clear<br/>By default, timestamp fields are cleared on _Text_ files, because a lot of differencies are generated on _Binaries_ and _Text_ files with Timestamps activated. This timestamp field is part of the vcx, scx and other Foxpro binary source code files.<br/>**If set via parameter _cNoTimestamps_, this is ignored.**<br/>**There is no inheritance for this setting. First occurance wins.** |
|
||||||
|
| ClearUniqueID<br/>n/a | 0, _1_ | 0=Keep UniqueID,<br/>1=Clear Unique ID.<br/>Very useful for Diff and Merge.<br/>By default, UniqueID fields are cleared on _Text_ files, because a lot of differencies are generated with UniqueID activated.<br/>**If set via parameter _cClearUniqueID_, this is ignored.**<br/>**There is no inheritance for this setting. First occurance wins.** |
|
||||||
|
| OptimizeByFilestamp<br/>n/a | _0_, 1 | 0=Don't optimize (always generate),<br/>1=Optimize (generate only when destination filestamp es older). By default this optimization is deactivated, and it is not recommended if using for merge, so _Bin_ and _Text_ files can be modified seperately.<br/><span style="background-color: gold;">Dangerous while working with branches!</span>.<br/>**If set via parameter _cOptimizeByFilestamp_, this is ignored.**<br/>**There is no inheritance for this setting. First occurance wins.** |
|
||||||
|
| RemoveNullCharsFromCode<br/>l_RemoveNullCharsFromCode | 0, _1_ | 1=Drop NULL chars from source code,<br/>0=Leave NULL chars in source code |
|
||||||
|
| RemoveZOrderSetFromProps<br/>l_RemoveZOrderSetFromProps | _0_, 1 | 1=Remove ZOrderSet from the properties,<br/>0=Leave ZOrderSet in the properties |
|
||||||
|
|||
|
||||||
|
| PRG_Compat_Level<br/>n_PRG_Compat_Level | _0_, 1 | 0=Legacy,<br/>1=Use HELPSTRING as Class Procedure comment. |
|
||||||
|
| ClearDBFLastUpdate<br/>l_ClearDBFLastUpdate | 0, _1_ | 0=Keep DBF LastUpdate,<br/>1=Clear DBF LastUpdate.<br/>Useful for Diff, minimizes differences. |
|
||||||
|
| ExcludeDBFAutoincNextval<br/>n_ExcludeDBFAutoincNextval | _0_, 1 | 0=Do not exclude this value from db2,<br/>1=Exclude this value from db2 |
|
||||||
|
| DBF_Conversion_Included<br/>c_DBF_Conversion_Included | * | If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf.<br/>See [Order and range of records](./FoxBin2Prg_Internals.md#order-and-range-of-records).<br/>**Note:** This can be [changed per table](./FoxBin2Prg_Internals.md#configuration-file-per-table). |
|
||||||
|
| DBF_Conversion_Excluded<br/>c_DBF_Conversion_Excluded | | If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf.<br/>See [Order and range of records](./FoxBin2Prg_Internals.md#order-and-range-of-records).<br/>**Note:** This can be [changed per table](./FoxBin2Prg_Internals.md#configuration-file-per-table). |
|
||||||
|
| DBF_BinChar_Base64<br/>l_DBF_BinChar_Base64 | 0, _1_ | 0=For character type fields, if NoCPTrans 0=do not transform,<br/>1=use Base64 transform (default)<br/>**Note:** This can be [changed per table](./FoxBin2Prg_Internals.md#configuration-file-per-table). |
|
||||||
|
| DBF_IncludeDeleted<br/>l_DBF_IncludeDeleted | _0_, 1 | 0=Do not include deleted records (default),<br/>1=Include deleted records<br/>**Note:** This can be [changed per table](./FoxBin2Prg_Internals.md#configuration-file-per-table). |
|
||||||
|
| | | **Note:**<br/>This is only true for tables. Generating DBC to _Text_ and back to _Binary_ will act as PACK DATABASE.<br/>The data added by _DBF_IncludeDeleted: 1_ will be ignored by old versions generating _Binary_ files. |
|
||||||
|
|||
|
||||||
|
| extension: xx2 | | FoxBin2Prg extensions ends in '2' (pj2, vc2, sc2, etc), but you can change that. |
|
||||||
|
| extension: pj2=<br/>c_pj2 | \<extension\> | Extension for text file representing project PJX |
|
||||||
|
| extension: vc2=<br/>c_vc2 | \<extension\> | Extension for text file representing classlibray VCX, or a class out of a VCX |
|
||||||
|
| extension: sc2=<br/>c_sc2 | \<extension\> | Extension for text file representing form SCX, or a class out of a SCX (Form; Dataenbironment) |
|
||||||
|
| extension: fr2=<br/>c_fr2 | \<extension\> | Extension for text file representing report FRX |
|
||||||
|
| extension: lb2=<br/>c_lb2 | \<extension\> | Extension for text file representing label LBX |
|
||||||
|
| extension: mn2=<br/>c_mn2 | \<extension\> | Extension for text file representing menu MNX |
|
||||||
|
| extension: db2=<br/>c_db2 | \<extension\> | Extension for text file representing table DBF, free or DBC bound |
|
||||||
|
| extension: dc2=<br/>c_dc2 | \<extension\> | Extension for text file representing database container DBC, or records from database container DBC |
|
||||||
|
| extension: fk2=<br/>c_fk2 | \<extension\> | Extension for text file representing macro file FKY |
|
||||||
|
| extension: me2=<br/>c_me2 | \<extension\> | Extension for text file representing variable memory MEM, created with SAVE TO |
|
||||||
|
| | | **Example for for making it SourceSafe (sccapi v1) compatible:**<br/>extension: pj2=pja<br/>extension: vc2=vca<br/>extension: sc2=sca<br/>extension: fr2=fra<br/>extension: lb2=lba<br/>extension: mn2=mna<br/>extension: db2=dba<br/>extension: dc2=dca |
|
||||||
|
|
||||||
|
### Note
|
||||||
|
The options will be read outside in, top to down. See [Multi config](#multi-configuration)
|
||||||
|
|
||||||
|
#### Multi configuration
|
||||||
|
Starting at version v1.19.25 FoxBin2Prg allow configuration per directory,
|
||||||
|
overriding the main configuration of FoxBin2Prg directory.
|
||||||
|
The override is by each setting, so you can reconfigure one or more settings and the
|
||||||
|
remaining settings are inherited from main CFG.
|
||||||
|
|
||||||
|
From v1.19.42 CFGs are inherited between directories from parent to child,
|
||||||
|
so if you have all your developments under, let's say, "c:\devs" directory and subdirs,
|
||||||
|
de CFG in "c:\devs" will be inherited on subdirs, and settings can be overriden one by one if you want to.
|
||||||
|
This inheritance saves a lot of time and minimizes the CFGs needed \:\)
|
||||||
|
|
||||||
|
The order is:
|
||||||
|
1. An optional configuration file given by the parameters [program / executable](./FoxBin2Prg_Run.md#usage-1) or [API, Execute method](./FoxBin2Prg_Object.md#execute)
|
||||||
|
2. An optional default configuration file next to the prg/exe
|
||||||
|
3. Any configuration file drive root up to current folder
|
||||||
|
3. Folder and subfolder of current folder. *This is, if called for a pjx, not only the pjx folder, any subfolder could have configuration file, valid for the files of this subfolder and it's subfolders.*
|
||||||
|
|
||||||
|
If the _optional configuration file given by the parameter_ sets `InhibitInheritance` on a different value the 0, the chain of inheritance will be different, see above.
|
||||||
|
|
||||||
|
##### Note
|
||||||
|
Options will be read outside in, top to down.
|
||||||
|
If an option is defined multiple times, even in the same file, last occurance wins. There are some exceptions, see below.
|
||||||
|
|
||||||
|
A different exception are the group controlling the new style to split DBC files and the one for forms.
|
||||||
|
The options _UseFilesPerDBC_, _RedirectFilePerDBCToMain_ and _ItemPerDBCCheck_ will be ignored for DBC,
|
||||||
|
if _OldFilesPerDBC_ is set to 0.
|
||||||
|
Setting _OldFilesPerDBC_ to 1 will inhertit the values from the \*class\* options.
|
||||||
|
If _OldFilesPerDBC_ is set to 0 after it was active, the values of the three options are rejected at all and reset to the corresponding \*class\* values.
|
||||||
|
For Forms, options _UseFormPerFile_, _RedirectFormPerFileToMain_, _RedirectFormType_ and _FormPerFileCheck_ will be ignored,
|
||||||
|
if _UseFormSettings_ is set to 0.
|
||||||
|
Setting _UseFormSettings_ to 1 will inhertit the values from the \*class\* options.
|
||||||
|
If _UseFormSettings_ is set to 0 after it was active, the values of the four options are rejected at all and reset to the corresponding \*class\* values.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
This is a template of a configuration file as created with
|
||||||
|
```
|
||||||
|
DO FOXBIN2PRG.PRG WITH "-c","template.cfg" &&==> Generates a template for FoxBin2Prg.cfg config file with newest settings
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
*################################################################################################################
|
||||||
|
*FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS)
|
||||||
|
*Version: v1.21.05
|
||||||
|
*****************************************************************************************************************
|
||||||
|
|
||||||
|
* Note, configuration files will follow an inheritance.
|
||||||
|
* 1. Default values
|
||||||
|
* 2., optional FOXBIN2PRG.CFG in folder of FOXBIN2PRG.EXE
|
||||||
|
* or, if defined, a config file given by a parameter calling FOXBIN2PRG
|
||||||
|
* if used, the InhibitInheritance setting controls if other config files will be evaluated (default). See below.
|
||||||
|
* 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: <TableName>.dbf.cfg in tables folder)
|
||||||
|
|
||||||
|
* Some Parameter calling FOXBIN2PRG.EXE overturn this settings (except Defaults)
|
||||||
|
*****************************************************************************************************************
|
||||||
|
|
||||||
|
*-- Settings for internal work, not processing
|
||||||
|
*Language: (auto) && Language of shown messages and LOGs. EN=English, FR=French, ES=Espa<70>ol, DE=German, Not defined = AUTOMATIC [DEFAULT]
|
||||||
|
*ShowProgressbar: 1 && 0=Don't show, 1=Allways show, 2=Show only for multi-file processing
|
||||||
|
* && Note: This setting will be ignored, if cDontShowProgress parameter is set.
|
||||||
|
*DontShowErrors: 0 && Show message errors by default
|
||||||
|
* && Note: This setting will be ignored, if cDontShowError parameter is set.
|
||||||
|
* && Note: There is no inheritance for this setting. First occurance wins.
|
||||||
|
*ExtraBackupLevels: 1 && By default 1 BAK is created. With this you can make more .N.BAK, or none
|
||||||
|
* && Note: There is no inheritance for this setting. First occurance wins.
|
||||||
|
*Debug: 0 && 0=Don't Activate individual <file>.Log by default
|
||||||
|
* && 1=Activate individual <file>.Log by default
|
||||||
|
* && 2=???
|
||||||
|
* && Only valid if not controlled by parameter cDebug
|
||||||
|
*BackgroundImage: <cFile> && Backgroundimage for process form. Empty for empty Background. File not found uses default.
|
||||||
|
*HomeDir: 1 && Home directory in PJX
|
||||||
|
* && 0 don't save HomeDir in PJ2
|
||||||
|
* && 1 save HomeDir in PJ2
|
||||||
|
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
*-- Settings for config file via parameter only
|
||||||
|
*InhibitInheritance: 0 && 0=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
|
||||||
|
*----------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
*-- Conversion operation by type
|
||||||
|
*PJX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
||||||
|
*VCX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
||||||
|
*SCX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
||||||
|
*FRX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
||||||
|
*LBX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
||||||
|
*MNX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
||||||
|
*DBC_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
||||||
|
*DBF_Conversion_Support: 1 && 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)
|
||||||
|
*FKY_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff)
|
||||||
|
*MEM_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff)
|
||||||
|
*----------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
*Setting for pjx files
|
||||||
|
*CheckFileInPath: 0 && Determines 2Txt deals with files not in the subfolders of the PJX. No handler for UNC paths.
|
||||||
|
* && 0 Ignore. Default
|
||||||
|
* && 1 Check and error out if file is not on same structure (for source control)
|
||||||
|
* && 2 Create absolute path if file is on different drive.
|
||||||
|
* && 3 Create absolute path if file is not in structure
|
||||||
|
*----------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
*Setting for container files (not pjx)
|
||||||
|
*-- CLASS (, FORM and DBC) options (tx2 is to read as vc2 or sc2, VCX might be SCX)
|
||||||
|
*-- FORM and DBC options default to this settings, if not set otherwise. See below.
|
||||||
|
*- Class per file options (UseClassPerFile: 1)
|
||||||
|
*UseClassPerFile: 0 && Determines how a library (or form) will handle included class (or, for forms, objects)
|
||||||
|
* && 0 One library.tx2 file
|
||||||
|
* && 1 Multiple file.class.tx2 files
|
||||||
|
* && 2 Multiple file.baseclass.class.tx2 files
|
||||||
|
*RedirectClassPerFileToMain: 0 && When regenerating binary files, determine target file
|
||||||
|
* && 0 Don't redirect to file.vcx/scx
|
||||||
|
* && 1 Redirect to file.vcx/scx when selecting file[.baseclass].class.tx2
|
||||||
|
* && RedirectClassType: 1 has precedence
|
||||||
|
*RedirectClassType: 0 && For classes created with UseClassPerFile>0 in the form file[.baseclass].class.tx2
|
||||||
|
* && Those files could be imported like file.tx2::Class::import or like file[.baseclass].class.tx2
|
||||||
|
* && For the second form:
|
||||||
|
* && 0 Redirect file[.baseclass].class.tx2 to file.VCX and add / replace all other classes of this library
|
||||||
|
* && 1 Redirect file[.baseclass].class.tx2 to file[.baseclass].class.VCX and do not touch file.VCX
|
||||||
|
* && 2 Redirect file[.baseclass].class.tx2 to file.VCX and do not touch other classes of file.VCX
|
||||||
|
*ClassPerFileCheck: 0 && Check, if files listed in the main file of a library or form will be included
|
||||||
|
* && 0 Don't check file inclusion
|
||||||
|
* && 1 Check file[.baseclass].class.tx2 inclusion
|
||||||
|
* && Only used if import file is in file[.baseclass].class.tx2 syntax
|
||||||
|
* && Ignored for RedirectClassType: 2
|
||||||
|
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
||||||
|
*-- FORM options
|
||||||
|
*- Form per file options (UseFormSettings: 1)
|
||||||
|
*UseFormSettings: 0 && 1=Turns the File per SCX options on, 0 uses the old UseClassPerFile etc settings.
|
||||||
|
* && Options below will only read if UseFormSettings is set 1 before!
|
||||||
|
* && If UseFormSettings is set 0 later, all setting will be lost
|
||||||
|
*UseFormPerFile: 0 && Determines how a form will handle included objects
|
||||||
|
* && 0 One Form.sc2 file
|
||||||
|
* && 1 Multiple Form.Obj.sc2 files
|
||||||
|
* && 2 Multiple Form.baseclass.Obj.sc2 files
|
||||||
|
*RedirectFormPerFileToMain: 0 && When regenerating binary files, determine target file
|
||||||
|
* && 0 Don't redirect to Form.scx
|
||||||
|
* && 1 Redirect to Form.scx when selecting Form[.baseclass].Obj.sc2
|
||||||
|
* && RedirectFormType: 1 has precedence
|
||||||
|
*RedirectFormType: 0 && For classes created with UseFormPerFile>0 in the form Form[.baseclass].Obj.sc2
|
||||||
|
* && Those files could be imported like Form.sc2::Class::import or like Form[.baseclass].Obj.sc2
|
||||||
|
* && For the second form:
|
||||||
|
* && 0 Redirect Form[.baseclass].Obj.sc2 to Form.SCX and add / replace all other classes of this library
|
||||||
|
* && 1 Redirect Form[.baseclass].Obj.sc2 to Form[.baseclass].Obj.SCX and do not touch Form.SCX
|
||||||
|
* && 2 Redirect Form[.baseclass].Obj.sc2 to Form.SCX and do not touch other classes of Form.SCX
|
||||||
|
*FormPerFileCheck: 0 && Check, if files listed in the main file of a library or form will be included
|
||||||
|
* && 0 Don't check file inclusion
|
||||||
|
* && 1 Check Form[.baseclass].Obj.sc2 inclusion
|
||||||
|
* && Only used if import file is in Form[.baseclass].Obj.sc2 syntax
|
||||||
|
* && Ignored for RedirectFormType: 2
|
||||||
|
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
||||||
|
*-- DBC options
|
||||||
|
*- File per DBC options (UseFilesPerDBC: 1)
|
||||||
|
*OldFilesPerDBC: 0 && 1=Turns the File per DBC options on, 0 uses the old UseClassPerFile etc settings.
|
||||||
|
* && Options below will only read if OldFilesPerDBC is set 1 before!
|
||||||
|
* && If OldFilesPerDBC is set 0 later, all setting will be lost
|
||||||
|
*UseFilesPerDBC: 0 && 0=One database dc2 file, 1=Multiple file.*.*.dc2 files
|
||||||
|
* && 0 creates only a file.dc2 with all DBC (file) data
|
||||||
|
* && 1 creates a file.dc2 with DBC properties
|
||||||
|
* && and additional DBC files per DBC item (stored-proc, table, ..)
|
||||||
|
* && Note: recration only if RedirectFilePerDBCToMain is 1
|
||||||
|
*RedirectFilePerDBCToMain: 0 && 0=Don't redirect to file.dc2, 1=Redirect to file.tx2 when selecting file.item.*.dc2
|
||||||
|
*ItemPerDBCCheck: 0 && 0=Don't check file.item.*.dc2 inclusion, 1=Check file.item.*.dc2 inclusion
|
||||||
|
*----------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
*-- General files
|
||||||
|
*NoTimestamps: 1 && Clear timestamps of several file types by default for minimize text-file differences
|
||||||
|
* && Note: This setting will be ignored, if cNoTimestamps parameter is set.
|
||||||
|
* && Note: There is no inheritance for this setting. First occurance wins.
|
||||||
|
*ClearUniqueID: 1 && 0=Keep UniqueID in text files, 1=Clear Unique ID. Useful for Diff and Merge
|
||||||
|
* && Note: There is no inheritance for this setting. First occurance wins.
|
||||||
|
*OptimizeByFilestamp: 0 && 1=Optimize file regeneration depending on file timestamp. Dangerous while working with branches!
|
||||||
|
* && Note: There is no inheritance for this setting. First occurance wins.
|
||||||
|
*RemoveNullCharsFromCode: 1 && 1=Drop .Null. chars from source code
|
||||||
|
*RemoveZOrderSetFromProps: 0 && 0=Do not remove ZOrderSet property from object, 1=Remove ZOrderSet property from object
|
||||||
|
*PRG_Compat_Level: 0 && 0=Legacy, 1=Use HELPSTRING as Class Procedure comment
|
||||||
|
*----------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
*-- PJX special
|
||||||
|
*BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo, 2 = Don't keep DevInfo or ObjRev
|
||||||
|
*----------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
*-- DBF special
|
||||||
|
*ClearDBFLastUpdate: 1 && 0=Keep DBF LastUpdate, 1=Clear DBF LastUpdate. Useful for Diff.
|
||||||
|
*ExcludeDBFAutoincNextval: 0 && 0=Do not exclude this value from db2, 1=Exclude this value from db2
|
||||||
|
*DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf
|
||||||
|
*DBF_Conversion_Excluded: && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf
|
||||||
|
*DBF_BinChar_Base64: 1 && For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default)
|
||||||
|
*DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records
|
||||||
|
*----------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
*-- Text file extensions
|
||||||
|
*extension: tx2=newext && Specify extensions to use. Default FoxBin2Prg extensions ends in '2' (see at the bottom)
|
||||||
|
*-- Example configuration for SourceSafe compatibility:
|
||||||
|
*extension: pj2=pja && Text file to PJX
|
||||||
|
*extension: vc2=vca && Text file to VCX
|
||||||
|
*extension: sc2=sca && Text file to SCX
|
||||||
|
*extension: fr2=fra && Text file to FRX
|
||||||
|
*extension: lb2=lba && Text file to LBX
|
||||||
|
*extension: mn2=mna && Text file to MNX
|
||||||
|
*extension: db2=dba && Text file to DBF
|
||||||
|
*extension: dc2=dca && Text file to DBC
|
||||||
|
*-- Additional extensions
|
||||||
|
*extension: fk2=fkx && Text file to FKY
|
||||||
|
*extension: me2=fkx && Text file to MEM
|
||||||
|
*
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration file per table
|
||||||
|
Those configuration files are valid for a single table only. The idea is to have special settings for single tables.
|
||||||
|
|
||||||
|
It is possible to create a template with all options and comments via
|
||||||
|
```
|
||||||
|
DO FOXBIN2PRG.PRG WITH "-t","template.dbf.cfg" &&==> Generates a template for table.dbf.cfg per table config file with newest settings.
|
||||||
|
```
|
||||||
|
|
||||||
|
See [command line](./FoxBin2Prg_Run.md#usage-2).
|
||||||
|
The options in the template (or in the config that ships with FoxBin2Prg) are commented out.
|
||||||
|
To activate an option remove the asterix and set appropriate value.
|
||||||
|
These are the Table.dbf.cfg configuration file settings and their meaning:
|
||||||
|
|
||||||
|
| FoxBin2Prg.cfg keywords | Value | per<br/>file | Description |
|
||||||
|
| ----- | ----- | ----- | ----- |
|
||||||
|
| DBF_Conversion_Support | 0, 1, 2, 4, 8 | | 0=No support,<br/>1=Generate Header _Text_ only (Diff),<br/>2=Generate Header _Text_ and _Bin_ (Merge/Only Structure!),<br/>4=Generate _Text_ with DATA (Diff),<br/>8=Export and Import DATA (Merge/Structure & Data) |
|
||||||
|
| DBF_Conversion_Order | c_Expression | x | Field expresion (For _INDEX ON_). ie: name+str(age,3),<br/>Empty means no sort order. <br/> usefull only if *DBF_Conversion_Support* >0 |
|
||||||
|
| DBF_Conversion_Condition | c_Expression | x | Logical expression (For _SCAN FOR_). ie: age > 10 AND NOT DELETED(),<br/>empty means all records, except *DBF_IncludeDeleted* <br/> usefull only if *DBF_Conversion_Support* >0 |
|
||||||
|
| DBF_IndexList | c_FileList | x | A comma delimited list of additional index files ( cdx or idx ). __Not the structural index file.__ |
|
||||||
|
| DBF_BinChar_Base64 | 0, 1 | | 0=For character type fields, if NoCPTrans 0=do not transform,<br/>1=use Base64 transform <br/> usefull only if *DBF_Conversion_Support* > 2 |
|
||||||
|
| DBF_IncludeDeleted | 0, 1 | | 0=Do not include deleted records,<br/>1=Include deleted records <br/> usefull only if *DBF_Conversion_Support* > 2 |
|
||||||
|
|
||||||
|
Setting *per file** could only be used via this configuration file.
|
||||||
|
For defaults, see [Configuration file](#configuration-file).
|
||||||
|
|
||||||
|
These options can be used in any combination inside a dbf particular cfg file,
|
||||||
|
if you create a text file using your dbf filename and adding ".cfg".
|
||||||
|
|
||||||
|
#### Syntax for filename.dbf.cfg contents
|
||||||
|
````
|
||||||
|
"DBF_Conversion_Support: <4 for export only or 8 for bidirectional support>"
|
||||||
|
"DBF_Conversion_Order: <C_Expression>"
|
||||||
|
"DBF_Conversion_Condition: <C_Expression>"
|
||||||
|
````
|
||||||
|
|
||||||
|
#### Example: customers.dbf.cfg
|
||||||
|
````
|
||||||
|
"DBF_Conversion_Support: 4"
|
||||||
|
"DBF_Conversion_Order: cust_no"
|
||||||
|
"DBF_Conversion_Condition: cust_no > 10"
|
||||||
|
````
|
||||||
|
|
||||||
|
## Excluding directories
|
||||||
|
It is possible to exclude directory structures from processing. Placing a **.FoxBin2Prg_Ignore** file into a directory will stop FoxBin2Prg from processing any file in this directory and it's subdirectories. The file must just exist and could otherwise be empty.
|
||||||
|
The difference to setting all *XXX_Conversion_Support to 0* is, that it could not be turned on again down the directory structure.
|
||||||
|
|
||||||
|
This was set up to ignore the local GoFish_ settings and history folder, the file will be automatically created by GoFish starting with version 6.2.004.
|
||||||
|
|
||||||
|
----
|
||||||
|

|
||||||
|
This project is part of [VFPX](https://vfpx.github.io/).
|
||||||
|
|
||||||
|
----
|
||||||
|
Last changed: _2026/06/21_ 
|
||||||
@@ -109,7 +109,7 @@ Also on blame.
|
|||||||
If you go for the _lib.baseclass.classname.vc2_ or _lib.classname.vc2_ style is a matter of taste.
|
If you go for the _lib.baseclass.classname.vc2_ or _lib.classname.vc2_ style is a matter of taste.
|
||||||
I can see baseclass on classname, so there is not much value, other might think different.
|
I can see baseclass on classname, so there is not much value, other might think different.
|
||||||
But split into classes makes life easy.
|
But split into classes makes life easy.
|
||||||
This is to be done in the [config file](#foxbin2prg-config), setting _UseClassPerFile_ option to 1 or 2.
|
This is to be done in the [config file](./FoxBin2Prg_Settings.md), setting _UseClassPerFile_ option to 1 or 2.
|
||||||
|
|
||||||
#### Forms
|
#### Forms
|
||||||
Side effect of splitting VCX is that SCX will be split into 3 files too.
|
Side effect of splitting VCX is that SCX will be split into 3 files too.
|
||||||
@@ -192,7 +192,7 @@ Those settings are mainly per project (repository) (in _git_ terms **local**). O
|
|||||||
I recommend those inside the project to keep the repository as self contained as possible.
|
I recommend those inside the project to keep the repository as self contained as possible.
|
||||||
#### gitignore
|
#### gitignore
|
||||||
The _.gitignore_ file controls which files **go not** into the git repository by default. It goes by folder with inheritance.
|
The _.gitignore_ file controls which files **go not** into the git repository by default. It goes by folder with inheritance.
|
||||||
If you understand the inheritance of .gitignore, you grok [FoXBin2Prg.cfg](#https://github.com/fdbozzo/foxbin2prg/blob/master/docs/FoxBin2Prg_Internals.md#configuration-file) and vice versa. Very close.
|
If you understand the inheritance of .gitignore, you grok [FoXBin2Prg.cfg](./FoxBin2Prg_Settings.md#configuration-file) and vice versa. Very close.
|
||||||
|
|
||||||
But git would not be git if one could not teach .gitignore to define the files **included**.
|
But git would not be git if one could not teach .gitignore to define the files **included**.
|
||||||
Again, see pro-git.
|
Again, see pro-git.
|
||||||
@@ -208,9 +208,9 @@ An example for _Text_ only use.
|
|||||||
|
|
||||||
#include general
|
#include general
|
||||||
#dbx data
|
#dbx data
|
||||||
!*.dbf
|
#!*.dbf
|
||||||
!*.cdx
|
#!*.cdx
|
||||||
!*.fpt
|
#!*.fpt
|
||||||
|
|
||||||
!*.dbc
|
!*.dbc
|
||||||
!*.dc[tx]
|
!*.dc[tx]
|
||||||
@@ -244,7 +244,7 @@ An example for _Text_ only use.
|
|||||||
!*.mn2
|
!*.mn2
|
||||||
!*.sc2
|
!*.sc2
|
||||||
!*.lb2
|
!*.lb2
|
||||||
#!*.d[bc]2
|
!*.d[bc]2
|
||||||
|
|
||||||
#include special
|
#include special
|
||||||
#default git
|
#default git
|
||||||
@@ -262,8 +262,6 @@ An example for _Text_ only use.
|
|||||||
foxuser.*
|
foxuser.*
|
||||||
_command.prg
|
_command.prg
|
||||||
````
|
````
|
||||||
As you see, this assumes that tables and databases are stored as binary.
|
|
||||||
I think I will swap to use them as _Text_ too, since version 1.19.55 of FoxBin2Prg eleminates some problems with this idea.
|
|
||||||
|
|
||||||
Also this approach ignores any bak / log / tmp / err files by default.
|
Also this approach ignores any bak / log / tmp / err files by default.
|
||||||
|
|
||||||
@@ -304,146 +302,11 @@ git commit
|
|||||||
#### FoxBin2Prg config
|
#### FoxBin2Prg config
|
||||||
The config of FoxBin2Prg using FoxBin2Prg.cfg files is relative simple. As you might see above, I carry the file within the repo.
|
The config of FoxBin2Prg using FoxBin2Prg.cfg files is relative simple. As you might see above, I carry the file within the repo.
|
||||||
The good on this is, if I change my mind and alter settings in it, FoxBin2Prg will find the setting that fit to the data on each commit.
|
The good on this is, if I change my mind and alter settings in it, FoxBin2Prg will find the setting that fit to the data on each commit.
|
||||||
If I have to checkout old stuff - the setting will fit.
|
If I have to checkout old stuff - the setting will fit. See [Configuration file(s)](./FoxBin2Prg_Settings.md) for detailed information.
|
||||||
|
|
||||||
````
|
|
||||||
*################################################################################################################
|
|
||||||
*FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS)
|
|
||||||
*Version: v1.21.01
|
|
||||||
*****************************************************************************************************************
|
|
||||||
|
|
||||||
* Note, configuration files will follow an inheritance.
|
|
||||||
* 1. Default values
|
|
||||||
* 2. optional FOXBIN2PRG.CFG in folder of FOXBIN2PRG.EXE,
|
|
||||||
* or, if defined, a config file given by a parameter calling FOXBIN2PRG,
|
|
||||||
* if used, the AllowInheritance setting controls if other config files will be evaluated,
|
|
||||||
* 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:<TableName>.dbf.cfg in tables folder),
|
|
||||||
* 6. Parameter calling FOXBIN2PRG.EXE.
|
|
||||||
|
|
||||||
* Some Parameter calling FOXBIN2PRG.EXE overturn this settings (except Defaults)
|
|
||||||
*****************************************************************************************************************
|
|
||||||
|
|
||||||
*-- Settings for internal work, not processing
|
|
||||||
*Language: (auto) && Language of shown messages and LOGs. EN=English, FR=French, ES=Espa<70>ol, DE=German, Not defined = AUTOMATIC [DEFAULT]
|
|
||||||
*ShowProgressbar: 1 && 0=Don't show, 1=Allways show, 2=Show only for multi-file processing
|
|
||||||
*DontShowErrors: 0 && Show message errors by default
|
|
||||||
*ExtraBackupLevels: 1 && By default 1 BAK is created. With this you can make more .N.BAK, or none
|
|
||||||
*Debug: 0 && Don't Activate individual <file>.Log by default
|
|
||||||
*BackgroundImage: <cFile> && Backgroundimage for process form. Empty for empty Background. File not found uses default.
|
|
||||||
*HomeDir: 1 && Home directory in PJX
|
|
||||||
* && 0 don't save HomeDir in PJ2
|
|
||||||
* && 1 save HomeDir in PJ2
|
|
||||||
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
*-- Settings for config file via parameter only
|
|
||||||
*AllowInheritance: 1 && 0=Not allow, 1=Allow scanning "regular" config files
|
|
||||||
*----------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
*-- Conversion operation by type
|
|
||||||
*PJX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
|
||||||
*VCX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
|
||||||
*SCX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
|
||||||
*FRX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
|
||||||
*LBX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
|
||||||
*MNX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
|
||||||
*DBC_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
|
||||||
*DBF_Conversion_Support: 1 && 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)
|
|
||||||
*FKY_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff)
|
|
||||||
*MEM_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff)
|
|
||||||
*----------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
*Setting for pjx files
|
|
||||||
*CheckFileInPath: 0 && Determines 2Txt deals with files not in the subfolders of the PJX. No handler for UNC paths.
|
|
||||||
* && 0 Ignore. Default
|
|
||||||
* && 1 Check and error out if file is not on same structure (for source control)
|
|
||||||
* && 2 Create absolute path if file is on different drive.
|
|
||||||
* && 3 Create absolute path if file is not in structure
|
|
||||||
*----------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
*Setting for container files (not pjx)
|
|
||||||
*-- CLASS and FORM options (tx2 is to read as vc2 or sc2, VCX might be SCX)
|
|
||||||
*- Class per file options (UseClassPerFile: 1)
|
|
||||||
*UseClassPerFile: 0 && Determines how a library (or form) will handle included class (or, for forms, objects)
|
|
||||||
* && 0 One library.tx2 file
|
|
||||||
* && 1 Multiple file.class.tx2 files
|
|
||||||
* && 2 Multiple file.baseclass.class.tx2 files
|
|
||||||
*RedirectClassPerFileToMain: 0 && When regenerating binary files, determine target file
|
|
||||||
* && 0 Don't redirect to file.tx2
|
|
||||||
* && 1 Redirect to file.tx2 when selecting file[.baseclass].class.tx2
|
|
||||||
* && RedirectClassType: 1 has precedence
|
|
||||||
*RedirectClassType: 0 && For classes created with UseClassPerFile>0 in the form file[.baseclass].class.tx2
|
|
||||||
* && Those files could be imported like file.tx2::Class::import or like file[.baseclass].class.tx2
|
|
||||||
* && For the second form:
|
|
||||||
* && 0 Redirect file[.baseclass].class.tx2 to file.VCX and add / replace all other classes of this library
|
|
||||||
* && 1 Redirect file[.baseclass].class.tx2 to file[.baseclass].class.VCX and do not touch file.VCX
|
|
||||||
* && 2 Redirect file[.baseclass].class.tx2 to file.VCX and do not touch other classes of file.VCX
|
|
||||||
*ClassPerFileCheck: 0 && Check, if files listed in the main file of a library or form will be included
|
|
||||||
* && 0 Don't check file inclusion
|
|
||||||
* && 1 Check file[.baseclass].class.tx2 inclusion
|
|
||||||
* && Only used if import file is in file[.baseclass].class.tx2 syntax
|
|
||||||
* && Ignored for RedirectClassType: 2
|
|
||||||
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
|
|
||||||
*-- DBC options
|
|
||||||
*- File per DBC options (UseFilesPerDBC: 1)
|
|
||||||
*OldFilesPerDBC: 0 && 1=Turns the File per DBC options on, 0 uses the old UseClassPerFile etc settings.
|
|
||||||
* && Options below will only read if OldFilesPerDBC is set 1 before!
|
|
||||||
* && If OldFilesPerDBC is set 0 later, alle setting will be lost
|
|
||||||
*UseFilesPerDBC: 0 && 0=One database dc2 file, 1=Multiple file.*.*.dc2 files
|
|
||||||
* && 0 creates only a file.dc2 with all DBC (file) data
|
|
||||||
* && 1 creates a file.dc2 with DBC properties
|
|
||||||
* && and additional DBC files per DBC item (stored-proc, table, ..)
|
|
||||||
* && Note: recration only if RedirectFilePerDBCToMain is 1
|
|
||||||
*RedirectFilePerDBCToMain: 0 && 0=Don't redirect to file.dc2, 1=Redirect to file.tx2 when selecting file.item.*.dc2
|
|
||||||
*ItemPerDBCCheck: 0 && 0=Don't check file.item.*.dc2 inclusion, 1=Check file.item.*.dc2 inclusion
|
|
||||||
*----------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
*-- General files
|
|
||||||
*NoTimestamps: 1 && Clear timestamps of several file types by default for minimize text-file differences
|
|
||||||
*ClearUniqueID: 1 && 0=Keep UniqueID in text files, 1=Clear Unique ID. Useful for Diff and Merge
|
|
||||||
*OptimizeByFilestamp: 0 && 1=Optimize file regeneration depending on file timestamp. Dangerous while working with branches!
|
|
||||||
*RemoveNullCharsFromCode: 1 && 1=Drop .Null. chars from source code
|
|
||||||
*RemoveZOrderSetFromProps: 0 && 0=Do not remove ZOrderSet property from object, 1=Remove ZOrderSet property from object
|
|
||||||
*PRG_Compat_Level: 0 && 0=Legacy, 1=Use HELPSTRING as Class Procedure comment
|
|
||||||
*----------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
*-- PJX special
|
|
||||||
*BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo
|
|
||||||
*----------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
*-- DBF special
|
|
||||||
*ClearDBFLastUpdate: 1 && 0=Keep DBF LastUpdate, 1=Clear DBF LastUpdate. Useful for Diff.
|
|
||||||
*ExcludeDBFAutoincNextval: 0 && 0=Do not exclude this value from db2, 1=Exclude this value from db2
|
|
||||||
*DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf
|
|
||||||
*DBF_Conversion_Excluded: && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf
|
|
||||||
*DBF_BinChar_Base64: 1 && For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default)
|
|
||||||
*DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records
|
|
||||||
*----------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
*-- Text file extensions
|
|
||||||
*extension: tx2=newext && Specify extensions to use. Default FoxBin2Prg extensions ends in '2' (see at the bottom)
|
|
||||||
*-- Example configuration for SourceSafe compatibility:
|
|
||||||
*extension: pj2=pja && Text file to PJX
|
|
||||||
*extension: vc2=vca && Text file to VCX
|
|
||||||
*extension: sc2=sca && Text file to SCX
|
|
||||||
*extension: fr2=fra && Text file to FRX
|
|
||||||
*extension: lb2=lba && Text file to LBX
|
|
||||||
*extension: mn2=mna && Text file to MNX
|
|
||||||
*extension: db2=dba && Text file to DBF
|
|
||||||
*extension: dc2=dca && Text file to DBC
|
|
||||||
*-- Additional extensions
|
|
||||||
*extension: fk2=fkx && Text file to FKY
|
|
||||||
*extension: me2=fkx && Text file to MEM
|
|
||||||
````
|
|
||||||
All use off this are the last four lines. But I like to keep the template (recent as version 1.19.69).
|
|
||||||
- Using single classes - because it's much more easy to merge a single class then a whole library.
|
|
||||||
- A single class selected might be added to the VCX
|
|
||||||
- Turn off DBC and DBF conversion
|
|
||||||
|
|
||||||
----
|
----
|
||||||

|

|
||||||
This project is part of [VFPX](https://vfpx.github.io/).
|
This project is part of [VFPX](https://vfpx.github.io/).
|
||||||
|
|
||||||
----
|
----
|
||||||
Last changed: _2026/06/20_ 
|
Last changed: _2026/06/21_ 
|
||||||
Reference in New Issue
Block a user