With additional index 4
This commit is contained in:
@@ -19,9 +19,7 @@ As far as possible these are the original documents. Changes are added where fun
|
||||
The older links point to Fernandos repository.
|
||||
|
||||
For recent verisons see
|
||||
 [Fernandos FoxBin2PRG](https://github.com/fdbozzo/foxbin2prg)
|
||||
 [This fork](https://github.com/lscheffler/foxbin2prg/tree/fork_mod)
|
||||
 [Just the bug fixes of this fork](https://github.com/lscheffler/foxbin2prg/tree/fork)
|
||||
 [FoxBin2PRG](https://github.com/fdbozzo/foxbin2prg)
|
||||
|
||||
## Full Change History
|
||||
This page is not only to get the history of the changes, but to keep a permanent list of people that have contributed to enhance FoxBin2Prg and that I feel as part of the ADN of this tool.
|
||||
@@ -32,6 +30,13 @@ _**Note:** you can click on the version number for downloading this version from
|
||||
|
||||
| Rel.Date | Developer | Version | Details |
|
||||
| - | - | - | - |
|
||||
| 2021/xx/xx | LScheffler | [v1.19.60]() | **Enhancement**: -cC options learned to create default FoxBin2Prg._cfg file |
|
||||
| 2021/xx/xx | LScheffler | [v1.19.60]() | **Enhancement**: -t Option learned to create default \<tablename\>._cfg file, if table is open. |
|
||||
| 2021/xx/xx | LScheffler | [v1.19.60]() | **Enhancement**: Handling of additional non structural index per DBF in Bin2Text and Text2Bin. See [Config per DBF](./FoxBin2Prg_Internals.md#configuration-per-table). |
|
||||
| 2021/xx/xx | LScheffler | [v1.19.60]() | **Enhancement**: Debug-Logging for Index |
|
||||
| 2021/xx/xx | LScheffler | [v1.19.60]() | **Bug Fix**: DBF_Conversion_Condition was read, but never used |
|
||||
| 2021/xx/xx | LScheffler | [v1.19.60]() | **Bug Fix**: DBF_Conversion_Order sets an index that later would be stored as structural index |
|
||||
| 2021/xx/xx | LScheffler | [v1.19.60]() | **Bug Fix**: config options with text value fail, if line comment is set |
|
||||
| 2021/03/09 | LScheffler | [v1.19.59]() | **Feature**: Logging of settings as settings object passed to execute method (Option debug > 0) |
|
||||
| 2021/03/09 | LScheffler | [v1.19.59]() | **Feature**: Added option to create config file template based on current values of a directory |
|
||||
| 2021/03/09 | LScheffler | [v1.19.59]() | **Bug Fix**: RedirectClassType = 2, Path was set wrong in special config |
|
||||
@@ -379,4 +384,4 @@ _**Note:** you can click on the version number for downloading this version from
|
||||
This project is part of [VFPX](https://vfpx.github.io/).
|
||||
|
||||
----
|
||||
Last changed: _2021/03/09_ 
|
||||
Last changed: _2021/03/18_ 
|
||||
@@ -11,6 +11,7 @@ As far as possible these are the original documents. Changes are added where fun
|
||||
----
|
||||
## Table of contents
|
||||
- [Why to use this tool](#why-to-use-this-tool)
|
||||
- [Limitations](#limitations)
|
||||
- [Configuration file](#configuration-file)
|
||||
- [Configuration file per table](#configuration-file-per-table)
|
||||
- [FoxBin2Prg Internals](#foxbin2prg-internals)
|
||||
@@ -66,6 +67,28 @@ and this require that generated text files can be manipulated manually or automa
|
||||
|
||||
No problem, just convert the .pjm to .pjx/.pjt sending to FoxBin2Prg, and it generates the real project again.
|
||||
|
||||
## Limitations
|
||||
Most of the files look like prg or XML data. Please note, those files are only look alike.
|
||||
The parsing to generate the binary depends highly on the position of data.
|
||||
So if a file is defined like
|
||||
```
|
||||
<FIELDS>
|
||||
<FIELD>
|
||||
<Name>I1</Name>
|
||||
```
|
||||
this
|
||||
```
|
||||
<FIELDS><FIELD><Name>I1</Name>.
|
||||
```
|
||||
will be nice XML, but not readable to FoxBin2Prg. This is a line by line parser.
|
||||
Leading and trailing spaces are mostly no problem.
|
||||
|
||||
You might freely change and merge code inside the text files, or data in a table-XML,
|
||||
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 -
|
||||
the definition of a HEADER class to a VCX will fail.
|
||||
|
||||
|
||||
## Configuration file
|
||||
It is possible to create a template or a config with all options and comments via
|
||||
```
|
||||
@@ -147,14 +170,16 @@ The options in the template (or in the config that ships with FoxBin2Prg) are co
|
||||
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 | 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 | 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 | Logical expression (For _SCAN FOR_). ie: age > 10 AND NOT DELETED(),<br/>empty means all files, except _DBF_IncludeDeleted_ <br/> usefull only if _DBF_Conversion_Support_>0 |
|
||||
| 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 |
|
||||
| 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 files, 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).
|
||||
|
||||
## FoxBin2Prg Internals
|
||||
@@ -644,7 +669,7 @@ Output file (**O**), Processed (**P1**), Without Errors (**E0**), Supported (**S
|
||||
|
||||
## How to use with a SCM tool
|
||||
### Note
|
||||
This chapter is without function if the only the _Text_ files are in the source control.
|
||||
This chapter is without function if the only the _Text_ files are in the source control.
|
||||
|
||||
Here we need to identify 2 distinct operations: checkin because a _Binary_ modification with the IDE
|
||||
and checkin because a merge operation.
|
||||
@@ -673,10 +698,13 @@ because anyway you will generate them later from their _Text_ files._
|
||||
|
||||
For options on integrating FoxBin2Prg with SCM tools, look at this topic:
|
||||
**> [FoxBin2Prg and use with SCM tools](./FoxBin2Prg_SCM.md)**
|
||||
|
||||
## How to use with _git_
|
||||
See [FoxBin2Prg and use with git](./FoxBin2Prg_git.md)
|
||||
|
||||
----
|
||||

|
||||
This project is part of [VFPX](https://vfpx.github.io/).
|
||||
|
||||
----
|
||||
Last changed: _2021/03/04_ 
|
||||
Last changed: _2021/03/18_ 
|
||||
@@ -56,6 +56,9 @@ Some settings will overwrite configuration. Using an object as cCFG_File will ov
|
||||
| | * | If _cInputFile_ is a project (pj[x2]) all files of the project, **including** the pjx, will be processed. The extension defines direction of operation. |
|
||||
| | \*\- | If _cInputFile_ is a project (pj[x2]) all files of the project, **excluding** the pjx, will be processed. The extension defines direction of operation. |
|
||||
| | 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 |
|
||||
| | -C | Create configuration file \<cInputFile\> or, if first parameter is empty, FoxBin2Prg._cfg in default folder. With recent values. |
|
||||
| | -c | Create configuration file template \<cInputFile\> or, if first parameter is empty, FoxBin2Prg._cfg in default 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. |
|
||||
| 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 |
|
||||
@@ -90,6 +93,7 @@ The _BIN2PRG, PRG2BIN, INTERACTIVE, SHOWMSG_ cTypes might be mixed freely like:
|
||||
|
||||
#### Note
|
||||
- The swap of _cInputFile_ and _cType_ is not possible here.
|
||||
- If cType is -cCt, then only the first both parameters are allowed.
|
||||
- Setting _cInputFile_ and _cType_ appropriate, info screen and generation of configuration templates is possible too. See [command line](./FoxBin2Prg_Run.md#usage_1)
|
||||
- While possibe, the SCCAPI (SCCTEXT.PRG) compatibility mode is more an idea of the [command line](./FoxBin2Prg_Run.md).
|
||||
|
||||
@@ -101,4 +105,4 @@ Return value is 0=OK, 1=Error.
|
||||
This project is part of [VFPX](https://vfpx.github.io/).
|
||||
|
||||
----
|
||||
Last changed: _2021/03/09_ 
|
||||
Last changed: _2021/03/18_ 
|
||||
@@ -107,14 +107,16 @@ on which fixed parameters must be in the shortcut.
|
||||
The filename is an external variable parameter received when SendingTo FoxBin2Prg with right-click on File Manager.
|
||||
|
||||
### Usage 2
|
||||
`FoxBin2Prg.EXE [-c cOutputFile] [-C cOutputFile] [-t cOutputFile]`
|
||||
`FoxBin2Prg.EXE [-cCt [cOutputFile]]`
|
||||
|
||||
| Parameter | Description |
|
||||
| ----- | ----- |
|
||||
| none | Call Info screen |
|
||||
| -c | creates a template config-file _cOutputFile_ ( like FOXBIN2PRG.CFG ) |
|
||||
| -C | creates a config-file _cOutputFile_ ( like FOXBIN2PRG.CFG ) with the recent options used on the path of cOutputFile |
|
||||
| | If cOutputFile is empty, a file FOXBIN2PRG._CFG will be created in default foder. |
|
||||
| -t | creates a template table-config-file _cOutputFile_ ( like _TableName_.dbf.cfg ) |
|
||||
| | If cOutputFile is empty and a table is open is workarea, a file \<tablename\>._CFG will be created in table foder. |
|
||||
|
||||
## Return values
|
||||
Return value via _ErrorLevel_ is 0=OK, 1=Error.
|
||||
@@ -163,4 +165,4 @@ FoxBin2Prg.lnk <path>\foxbin2prg.exe "INTERACTIVE-SHOWMSG"
|
||||
This project is part of [VFPX](https://vfpx.github.io/).
|
||||
|
||||
----
|
||||
Last changed: _2021/03/09_ 
|
||||
Last changed: _2021/03/18_ 
|
||||
@@ -43,6 +43,7 @@ generating bidirectional PRG-Style versions that allow recreating the original b
|
||||
- Out of the _Text_ versions you can **generate the original binaries**, so it is useful as backup
|
||||
- The extensions are configurable if you create a FOXBIN2PRG.CFG file
|
||||
- Inheritance of CFG configuration files between directories
|
||||
- Special configuration per table, allowing additional non structural index files, sorting and ranges of records to include
|
||||
- Methods and properties of _Text_ version are alphabetically sorted for easy comparison
|
||||
- Can set _UseClassPerFile_ setting to create individual files by class
|
||||
- Can set _UseFilesPerDBC_ setting to create individual files by DBC member
|
||||
@@ -84,4 +85,4 @@ FoxBin2Prg can be used in tree ways:
|
||||
This project is part of [VFPX](https://vfpx.github.io/).
|
||||
|
||||
----
|
||||
Last changed: _2021/03/03_ 
|
||||
Last changed: _2021/03/18_ 
|
||||
49
README.md
49
README.md
@@ -125,6 +125,15 @@ To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0
|
||||
## Changes
|
||||
See [Changes](./Documentacion/github/FoxBin2prg_Changes.md)
|
||||
|
||||
## Changes in 1.19.60
|
||||
* -cC options learned to create default FoxBin2Prg._cfg file
|
||||
* -t Option learned to create default \<TableName\>._cfg file, if table is open.
|
||||
* Handling of additional non structural index per DBF in Bin2Text and Text2Bin
|
||||
* Debug-Logging for Index
|
||||
* Bug Fix: DBF_Conversion_Condition was read, but never used
|
||||
* Bug Fix: DBF_Conversion_Order sets an index that later would be stored as structural index
|
||||
* Bug Fix: config options with text value fail, if line comment is set
|
||||
|
||||
## Changes in 1.19.59
|
||||
* Added support for writing to a different folder than the source code using a new tcOutputFolder parameter
|
||||
* Added a configuration item: HomeDir, which determines if HomeDir is saved in PJ2 files (the default is 1 for Yes)
|
||||
@@ -139,15 +148,12 @@ See [Changes](./Documentacion/github/FoxBin2prg_Changes.md)
|
||||
DO FOXBIN2PRG.PRG WITH "-C","template.cfg" ==> Generates a file like FoxBin2Prg.cfg config file with recent settings
|
||||
```
|
||||
|
||||
## Changes in 1.19.58
|
||||
* Added support for writing to a different folder than the source code using a new tcOutputFolder parameter
|
||||
* Added a configuration item: HomeDir, which determines if HomeDir is saved in PJ2 files (the default is 1 for Yes)
|
||||
|
||||
## Changes pre 1.19.58
|
||||
## Changes to Settings
|
||||
To get the new settings in config file, use the new create-a-template function:
|
||||
|
||||
```
|
||||
DO FOXBIN2PRG.PRG WITH "-c","template.cfg" ==> Generates a template for FoxBin2Prg.cfg config file with newest settings
|
||||
DO FOXBIN2PRG.PRG WITH "-c","template.cfg" ==> Generates a template for FoxBin2Prg.cfg config file with newest default 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
|
||||
```
|
||||
|
||||
@@ -172,37 +178,6 @@ The data added by _DBF_IncludeDeleted: 1_ will be ignored by old versions genera
|
||||
It's a good idea to have the _FoxBin2Prg.cfg_ per projekt and and source control,
|
||||
old commits / versions would have the old config.
|
||||
So the settings would fit the data and FoxBin2Prg could generate according to it.
|
||||
|
||||
### Fixes
|
||||
| Details |
|
||||
| - |
|
||||
| Added MEM and FKY options to config template and internal documentation |
|
||||
| Conversion prg -> vcx, files per class could create one class multiple times |
|
||||
| Processing directory, flush log file after loop instead of file |
|
||||
| Conversion prg -> dbf, fields with .NULL. value are incorectly recreated |
|
||||
| Minor translations |
|
||||
| Conversion dbf -> prg, error if only test mode (toFoxBin2Prg.l_ProcessFiles is false) |
|
||||
| DBF_Conversion_Condition, problem with macro expansion |
|
||||
| Bug on special setting for import in form file[.baseclass].class.vc2 |
|
||||
| Bug on RedirectClassType = 2 mixed up PATH |
|
||||
| Bug on RedirectClassType = 2, UseClassPerFile = 2 failed |
|
||||
|
||||
### Features
|
||||
|
||||
| Details |
|
||||
| - |
|
||||
| [Documentation](./Documentacion/github/FoxBin2prg.md) reworked. |
|
||||
| German translation improved |
|
||||
| Info screen-doc improved |
|
||||
| Inserted option DBF_IncludeDeleted to allow including deleted records of DBF |
|
||||
| Inserted option DBF_BinChar_Base64 to allow processing of NoCPTrans fields in non base64 way |
|
||||
| Inserted option OldFilesPerDBC to control split of DBC, the options below are controled by this |
|
||||
| Inserted option UseFilesPerDBC to split DBC processing from vcx / scx |
|
||||
| Inserted option RedirectFilePerDBCToMain to split DBC processing from vcx / scx |
|
||||
| Inserted option ItemPerDBCCheck to split DBC processing from vcx / scx |
|
||||
| added option to create config file template |
|
||||
| New value 2 for option RedirectClassType. Alter single class for input form file[.baseclass].class.vc2 |
|
||||
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
BIN
ThorUpdater/FoxBin2Prg - Kopie.zip
Normal file
BIN
ThorUpdater/FoxBin2Prg - Kopie.zip
Normal file
Binary file not shown.
@@ -1,82 +1,110 @@
|
||||
*################################################################################################################
|
||||
*FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS)
|
||||
*Version: v1.19.59
|
||||
*FOXBIN2PRG.CFG Konfigurations-Optionen: (Wird die Option nicht aufgef<65>hrt, ist der Wert im Beispiel der Default)
|
||||
*Version: v1.19.60
|
||||
*****************************************************************************************************************
|
||||
|
||||
*extension: tx2=newext && Specify extensions to use. Default FoxBin2Prg extensions ends in '2' (see at the bottom)
|
||||
*ShowProgressbar: 1 && 0=Don't show, 1=Allways show, 2= Show only for multi-file processing
|
||||
*DontShowErrors: 0 && Show message errors by default
|
||||
*NoTimestamps: 1 && Clear timestamps by default for minimize differences
|
||||
*Debug: 0 && Don't Activate individual <file>.Log by default
|
||||
*BodyDevInfo: 0 && [0=Don't keep DevInfo for body pjx records], 1=Keep DevInfo
|
||||
*ExtraBackupLevels: 1 && By default 1 BAK is created. With this you can make more .N.BAK, or none
|
||||
*ClearUniqueID: 1 && 0=Keep UniqueID in text files, 1=Clear Unique ID. Useful for Diff and Merge
|
||||
*ClearDBFLastUpdate: 1 && 0=Keep DBF LastUpdate, 1=Clear DBF LastUpdate. Useful for Diff.
|
||||
*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
|
||||
*Language: (auto) && Language of shown messages and LOGs. EN=English, FR=French, ES=Espa<70>ol, DE=German, Not defined = AUTOMATIC [DEFAULT]
|
||||
*ExcludeDBFAutoincNextval: 0 && [0=Do not exclude this value from db2], 1=Exclude this value from db2
|
||||
*PRG_Compat_Level: 0 && [0=Legacy], 1=Use HELPSTRING as Class Procedure comment
|
||||
*HomeDir: 1 && 0 = don't save HomeDir in PJ2, [1 = save HomeDir in PJ2]
|
||||
* Achtung, die Konfigurationsdateien werden vererbt.
|
||||
* 1. Defaultwerte
|
||||
* 2., optional FOXBIN2PRG.CFG im Vereichnis aus dem FOXBIN2PRG.EXE startet
|
||||
* 3., optional FOXBIN2PRG.CFG in der Wurzel des Arbeitsverzeichnises
|
||||
* 4., optional FOXBIN2PRG.CFG in jedem Verzeichnis bis zum Arbeitsverzeichnis
|
||||
* 5., optional Es k<>nnen spezielle Einstellungen f<>r einzelne DBF's erzeugt werden (Syntax: <Tabellenname>.dbf.cfg im Verzeichnis der Tabelle)
|
||||
* 6., Parameter des Aufrufs von FOXBIN2PRG.EXE.
|
||||
|
||||
* Einige Parameter im Aufruf von FOXBIN2PRG.EXE <20>bersteueren diese Vorgaben (bis auf die Defaults)
|
||||
*****************************************************************************************************************
|
||||
|
||||
*extension: tx2=newext && Umdefinition der Dateiendung der Textdateien. Die vordefinierten Endungen enden mit '2' (Beispiel siehe Ende dieser Datei)
|
||||
*ShowProgressbar: 1 && 0=Zeige Fortschrittsfenster, 1=Zeige es nicht, 2= Zeige Fortschrittsfenster nur, wen mehrere Dateien konvertiert werden.
|
||||
*DontShowErrors: 0 && 0=Zeige Fehler an, 1=Zeige keine Fehler an
|
||||
*NoTimestamps: 1 && 0=Zeitstempel werden nicht gel<65>scht 1=Zeitstempel werden f<>r minimale Unterschiede gel<65>scht
|
||||
*Debug: 0 && 0=Individuelles Logging ist aus 1= Individuelles Log per Datei <Datei>.Log
|
||||
*BodyDevInfo: 0 && 0=DevInfo im body-pjx-Datensatz wird nicht erhalten], 1=DevInfo wird erhalten
|
||||
*ExtraBackupLevels: 1 && Anzahl der Backup-Ebenen der Bin<69>rdateien 0=kein Backup, 1=<Datei>.BAK, n>1= n-Backup-Ebenen, <Datei>.n.BAK
|
||||
*ClearUniqueID: 1 && 0=Erhalte die Unique ID in den Text-Dateien, 1=L<>sche Unique ID. N<>tzlich f<>r Diff und Merge
|
||||
*ClearDBFLastUpdate: 1 && 0=Erhalte DBF LastUpdate, 1=L<>sche DBF LastUpdate. N<>tzlich f<>r Diff und Merge
|
||||
*OptimizeByFilestamp: 0 && 0=Aus, 1=Optimierte Erzeugung der Bin<69>rdateien in Abh<62>ngigkeit vom Zeitstempel. Gef<65>hrlich beim Arbeiten mit Zweigen!
|
||||
*RemoveNullCharsFromCode: 1 && 0=Aus 1=L<>sche NULL (CHR(0)) Zeichen aus dem Quellcode
|
||||
*RemoveZOrderSetFromProps: 0 && 0=Aus, 1=Entferne ZOrderSet Eigenschaft von Objekten
|
||||
*Language: (auto) && Sprache f<>r Anzeigen und Logs. EN=English, FR=Fran<61>ais, ES=Espa<70>ol, DE=Deutsch, Nicht definiert = Automatisch [DEFAULT]
|
||||
*ExcludeDBFAutoincNextval: 0 && 0=Aus, 1=Entferne diesen Wert aus der Textdate der Datenbank (db2)
|
||||
*PRG_Compat_Level: 0 && [0=Legacy], 1=Nutze HELPSTRING als Class Procedure Kommentar
|
||||
*HomeDir: 1 && 0 = Die Eigenschaft HomeDir wird nicht in die PJ2 gespeichert, [1 = Die Eigenschaft wird gespeichert]
|
||||
|
||||
*----------------------------------------------------------------------------------------------------------------
|
||||
*-- Convertion options:
|
||||
*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)
|
||||
*FKY_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff)
|
||||
*MEM_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff)
|
||||
*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)
|
||||
*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
|
||||
*-- Konvertierungs Optionen:
|
||||
*PJX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Bin<69>rdatei (Merge)
|
||||
*VCX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Bin<69>rdatei (Merge)
|
||||
*SCX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Bin<69>rdatei (Merge)
|
||||
*FRX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Bin<69>rdatei (Merge)
|
||||
*LBX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Bin<69>rdatei (Merge)
|
||||
*MNX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Bin<69>rdatei (Merge)
|
||||
*FKY_Conversion_Support: 1 && 0=Aus, 1=Erzeuge nur Textdatei (Diff)
|
||||
*MEM_Conversion_Support: 1 && 0=Aus, 1=Erzeuge nur Textdatei (Diff)
|
||||
*DBC_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Bin<69>rdatei (Merge)
|
||||
*DBF_Conversion_Support: 1 && 0=Aus
|
||||
* && 1=Erzeuge Textdatei nur f<>r Struktur (Diff)
|
||||
* && 2=Erzeuge Text- und Bin<69>rdatei nur f<>r Struktur (Merge)
|
||||
* && 4=Erzeuge Textdatei nur f<>r Struktur und Daten (Diff)
|
||||
* && 8=Erzeuge Text- und Bin<69>rdatei nur f<>r Struktur und Daten (Merge)
|
||||
*DBF_Conversion_Included: * && F<>r DBF_Conversion_Support: 4 kann eine mehrfache Dateimaske zum Einbeziehen angegeben werden, z.B.: www,fb2p_free.dbf
|
||||
* && *=Alle, Die Maske darf Wildcards (*,?) enthalten
|
||||
* && Diese Option kann auch per Tabelle gesetzt werden.
|
||||
*DBF_Conversion_Excluded: && F<>r DBF_Conversion_Support: 4 kann eine mehrfache Dateimaske zum Ausschlie<69>en angegeben werden, z.B.: www,fb2p_free.dbf
|
||||
* && Leer=Keine Datei auschlie<69>en
|
||||
|
||||
*----------------------------------------------------------------------------------------------------------------
|
||||
*-- 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
|
||||
*DBF_BinChar_Base64: 1 && 0=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
|
||||
*-- Optionen f<>r DBC
|
||||
*- Optionen f<>r Datei per DBC options (UseFilesPerDBC: 1)
|
||||
*OldFilesPerDBC: 0 && 1=Die unten stehenden DBC Optionen werden aktiviert, 0=Die UseClassPerFile settings werden genutzt.
|
||||
* && Die unten stehenden Optionen werden nur gelesen, wenn OldFilesPerDBC vorher 1 ist!
|
||||
* && Wird OldFilesPerDBC wieder auf 0 gesetzt, gehen diese Einstellungen verloren.
|
||||
*UseFilesPerDBC: 0 && 0=Erzeuge eine dc2 Datei, 1=Erzeuge mehrfache Dateien.*.*.dc2
|
||||
* && 0 Erzeugt eine Datei <Datenbank>.db2 mit allem Inhalt der DBC
|
||||
* && 1 Erzeugt eine Datei <Datenbank>.dc2 mit den Eigenschaften der Datenbank
|
||||
* && und zus<EFBFBD>tzlich eine Datei f<>r jedes Item der Datenbank (Gespeicherte Prozeduren, Tabellen, Views, ..)
|
||||
* && Achtung! Diese Dateien werden nur dann in die Bin<69>datei einbezogen, wenn RedirectFilePerDBCToMain 1 ist
|
||||
*RedirectFilePerDBCToMain 0 && Originale Dokumntation: 0=Keine Umlenkung, 1=Erzeuge <Datenbank>.dbc, wenn <Datenbank>.item.*.dc2 gew<65>hlt wurde
|
||||
* && Die Bim<69>r-Datenbank wird nur dann automatisch zusammen gef<65>gt, wenn diese Option 1 ist!
|
||||
*ItemPerDBCCheck: 0 && 0=Aus, 1=Teste, ob <Datenbank>.item.*.dc2 einbezogen wird.
|
||||
|
||||
*----------------------------------------------------------------------------------------------------------------
|
||||
*-- CLASS and FORM options
|
||||
*- Class per file options (UseClassPerFile: 1)
|
||||
*UseClassPerFile: 0 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files
|
||||
*RedirectClassPerFileToMain: 0 && 0=Don't redirect to file.tx2, 1=Redirect to file.tx2 when selecting file.class.tx2
|
||||
* && RedirectClassType: 1 precedes
|
||||
*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 && 0=Don't check file.class.tx2 inclusion, 1=Check file.class.tx2 inclusion
|
||||
* && Only used if import file is in file[.baseclass].class.tx2 syntax
|
||||
* && Ignored for RedirectClassType: 2
|
||||
*-- Optionen f<>r DBF (Transformation der DBF)
|
||||
*DBF_BinChar_Base64: 1 && F<>r Felder mit Zeicehn Typ (C,V,M), wenn NoCPTrans, dann 0=nicht transform,ieren, 1=F<>hre Base64 Transformation aus (default)
|
||||
* && Dies entspricht dem Flag 4096 in CursorToXML()
|
||||
* && Diese Option kann auch per Tabelle gesetzt werden.
|
||||
*DBF_IncludeDeleted: 0 && 0=Ohne gel<65>schte Datens<6E>tze (default), 1=Mit gel<65>schten Datens<6E>tzen
|
||||
* && Diese Option kann auch per Tabelle gesetzt werden.
|
||||
|
||||
*----------------------------------------------------------------------------------------------------------------
|
||||
*-- 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
|
||||
*-- Optionen f<EFBFBD>r CLASS und FORM
|
||||
*- Optionen f<>r Datei per Klasse (UseClassPerFile: 1) (f<>r VCX: vc2, f<>r SCX: sc2)
|
||||
*UseClassPerFile: 0 && 0=Eine Textdatei pro VCX/SCX, 1=Mehrere Dateien <Dateiname>.KlassenName.vc2 files, 2=Mehrere Dateien <Dateiname>.Basisklasse.KlassenName.vc2
|
||||
* && F<>r 1, 2 wird jeweils auch ein Headerdatei <Dateiname>.vc2 erzeugt
|
||||
*RedirectClassPerFileToMain: 0 && 0=Keine Umlenkung, 1=Klassen (und Objekte) werden in die VCX/SCX geschrieben wenn eine Datei <Dateiname>[.Basisklasse].KlassenName.vc2 gew<65>hlt wurde
|
||||
* && RedirectClassType: 1 hat Vorrang
|
||||
*RedirectClassType: 0 && F<>r Textdateien die mit UseClassPerFile>0 in der Form file[.baseclass].class.tx2 erstellt wurden.
|
||||
* && diese Dateien k<>nnen als file.tx2::Class::import oder als file[.baseclass].class.tx2 importiert werden.
|
||||
* && F<>r die zweite Form gilt:
|
||||
* && 0 Aus file[.baseclass].class.tx2 wird file.VCX und alle dclassen dieser Bibliothek werden neu gelesen
|
||||
* && 1 Aus file[.baseclass].class.tx2 wird file[.baseclass].class.VCX, die Bibliothek file.VCX wird ignoriert
|
||||
* && 2 Aus file[.baseclass].class.tx2 wird file.VCX aber alle anderen Klassen bleiben unver<65>ndert
|
||||
*ClassPerFileCheck: 0 && 0=Aus, 1=Teste, ob die Datei einbezogen <Dateiname>[.Basisklasse].KlassenName.vc2 wurde
|
||||
* && Nur f<>r die file[.baseclass].class.tx2 Syntax
|
||||
* && Wird f<>r RedirectClassType: 2 ignoriert
|
||||
|
||||
*----------------------------------------------------------------------------------------------------------------
|
||||
*-- Beispiel f<>r ge<67>nderte Textdatei Endungen, hier f<>r SourceSafe Kompatibilt<6C>t:
|
||||
*extension: pj2=pja && Text Datei f<>r PJX
|
||||
*extension: vc2=vca && Text Datei f<>r VCX
|
||||
*extension: sc2=sca && Text Datei f<>r SCX
|
||||
*extension: fr2=fra && Text Datei f<>r FRX
|
||||
*extension: lb2=lba && Text Datei f<>r LBX
|
||||
*extension: mn2=mna && Text Datei f<>r MNX
|
||||
*extension: db2=dba && Text Datei f<>r DBF
|
||||
*extension: dc2=dca && Text Datei f<>r DBC
|
||||
*-- Zus<75>tzliche Endungen
|
||||
*extension: fk2=fkx && Text Datei f<>r FKY
|
||||
*extension: me2=fkx && Text Datei f<>r MEM
|
||||
|
||||
*
|
||||
21
foxbin2prg.dbf.cfg.txt
Normal file
21
foxbin2prg.dbf.cfg.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
*################################################################################################################
|
||||
*-- Individual DBF configuration file (Syntax: <Tabellenname>.dbf.cfg im Verzeichnis der Tabelle) Defaults siehe FoxBin2prg.cfg
|
||||
*Version: v1.19.60
|
||||
*****************************************************************************************************************
|
||||
|
||||
*DBF_Conversion_Support: <1,2,4,8> && 0=Aus
|
||||
* && 1=Erzeuge Textdatei nur f<>r Struktur (Diff)
|
||||
* && 2=Erzeuge Text- und Bin<69>rdatei nur f<>r Struktur (Merge)
|
||||
* && 4=Erzeuge Textdatei nur f<>r Struktur und Daten (Diff)
|
||||
* && 8=Erzeuge Text- und Bin<69>rdatei nur f<>r Struktur und Daten (Merge)
|
||||
*DBF_Conversion_Order: <c_Expression> && Optional, Reihenfolge der Datens<6E>tze. Ausdruck f<>r INDEX ON. ie: name+str(age,3)
|
||||
* && leer: normale Reihenfolge
|
||||
*DBF_Conversion_Condition: <c_Expression> && Optional, Ausdruck f<>r SELECT FOR. ie: age > 10 AND NOT DELETED()
|
||||
* && leer: Alle, au<61>er DBF_IncludeDeleted
|
||||
*DBF_IndexList: <cFile_List> && Kommagetrennte Liste von Dateien. Zus<75>tzliche Index - Dateien. CDX oder IDX. Nicht der Strukturelle Index
|
||||
*DBF_BinChar_Base64: <0,1> && F<>r Felder mit Zeicehn Typ (C,V,M), wenn NoCPTrans, dann 0=nicht transform,ieren, 1=F<>hre Base64 Transformation aus
|
||||
* && Dies entspricht dem Flag 4096 in CursorToXML()
|
||||
* && Diese Option kann auch per Tabelle gesetzt werden.
|
||||
*DBF_IncludeDeleted: <0,1> && 0=Ohne gel<65>schte Datens<6E>tze, 1=Mit gel<65>schten Datens<6E>tzen
|
||||
* && Diese Option kann auch per Tabelle gesetzt werden.
|
||||
*
|
||||
BIN
foxbin2prg.exe
BIN
foxbin2prg.exe
Binary file not shown.
BIN
foxbin2prg.pjt
BIN
foxbin2prg.pjt
Binary file not shown.
BIN
foxbin2prg.pjx
BIN
foxbin2prg.pjx
Binary file not shown.
193
foxbin2prg.prg
193
foxbin2prg.prg
@@ -255,13 +255,13 @@
|
||||
* 09/03/2021 LScheffler v1.19.59 Enhancement: Added option to create config file template based on current values of a directory
|
||||
* 09/03/2021 LScheffler v1.19.59 Enhancement: Log settings object handed to execute (Debug > 0)
|
||||
|
||||
* xx/xx/2021 LScheffler v1.19.xx Enhancement: -cC options learned to create default ._cfg file
|
||||
* xx/xx/2021 LScheffler v1.19.xx Enhancement: -t Option learned to create default ._cfg file, if table is open.
|
||||
* xx/xx/2021 LScheffler v1.19.xx Enhancement: Handling of additional non structural index per DBF in Bin2Text and Text2Bin
|
||||
* xx/xx/2021 LScheffler v1.19.xx Enhancement: Handling of additional non structural index per DBF in Bin2Text and Text2Bin
|
||||
* xx/xx/2021 LScheffler v1.19.xx Bug Fix: DBF_Conversion_Condition was read, but never used
|
||||
* xx/xx/2021 LScheffler v1.19.xx Bug Fix: DBF_Conversion_Order sets an index that later would be stored as structural index
|
||||
* xx/xx/2021 LScheffler v1.19.xx Bug Fix: config options with text value fail, if line comment is set
|
||||
* xx/xx/2021 LScheffler v1.19.60 Enhancement: -cC options learned to create default FoxBin2Prg._cfg file
|
||||
* xx/xx/2021 LScheffler v1.19.60 Enhancement: -t Option learned to create default <tablename>._cfg file, if table is open.
|
||||
* xx/xx/2021 LScheffler v1.19.60 Enhancement: Handling of additional non structural index per DBF in Bin2Text and Text2Bin see config per DBF
|
||||
* xx/xx/2021 LScheffler v1.19.60 Enhancement: Debug-Logging for Index
|
||||
* xx/xx/2021 LScheffler v1.19.60 Bug Fix: DBF_Conversion_Condition was read, but never used
|
||||
* xx/xx/2021 LScheffler v1.19.60 Bug Fix: DBF_Conversion_Order sets an index that later would be stored as structural index
|
||||
* xx/xx/2021 LScheffler v1.19.60 Bug Fix: config options with text value fail, if line comment is set
|
||||
|
||||
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
||||
*
|
||||
@@ -407,6 +407,9 @@
|
||||
* 05/03/2021 Lutz Scheffler Bug report v1.19.56 For RedirectClassType = 2, Path was set wrong
|
||||
* 09/03/2021 Lutz Scheffler Bug report v1.19.57 For RedirectClassType = 2, Path was set wrong
|
||||
* 09/03/2021 Lutz Scheffler Bug report v1.19.57 RedirectClassType = 2, UseClassPerFile = 2 failed.
|
||||
* xx/xx/2021 Lutz Scheffler Bug report v1.19.59 DBF_Conversion_Condition was read, but never used
|
||||
* xx/xx/2021 Lutz Scheffler Bug report v1.19.59 DBF_Conversion_Order sets an index that later would be stored as structural index
|
||||
* xx/xx/2021 Lutz Scheffler Bug report v1.19.59 config options with text value fail, if line comment is set
|
||||
|
||||
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
||||
*
|
||||
@@ -708,10 +711,13 @@ Endif
|
||||
|
||||
* only 2 paras for -cCt
|
||||
Do Case
|
||||
Case Pcount()=1 And tcType=='-t' And !Empty( Dbf() )
|
||||
Case Pcount()=1 And tcType == '-t' And !Empty( Dbf() )
|
||||
tc_InputFile = Dbf() + '._cfg'
|
||||
|
||||
Otherwise
|
||||
Case Pcount()=1 And UPPER( tcType ) =='-C'
|
||||
tc_InputFile = 'FoxBin2PRG._cfg'
|
||||
|
||||
Case Pcount()#2 And ( UPPER( tcType ) =='-C' OR tcType =='-t' )
|
||||
tc_InputFile = ""
|
||||
tcType = ""
|
||||
|
||||
@@ -917,7 +923,7 @@ Define Class c_foxbin2prg As Session
|
||||
Protected n_CFG_Actual, l_Main_CFG_Loaded, o_Configuration, l_CFG_CachedAccess
|
||||
*--
|
||||
n_FB2PRG_Version = 1.19
|
||||
c_FB2PRG_Version_Real = '1.19.59'
|
||||
c_FB2PRG_Version_Real = '1.19.60'
|
||||
*--
|
||||
c_Language = '' && EN, FR, ES, DE
|
||||
c_Language_In = '(auto)'
|
||||
@@ -6765,7 +6771,7 @@ Define Class frm_main As Form
|
||||
|
||||
Thisform.edt_help.Value = loLang.C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC+0h0D0A+;
|
||||
STRTRAN(loLang.C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_cfg,'&'+'&','')+0h0D0A+;
|
||||
loLang.C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_tab_cfg
|
||||
STRTRAN(loLang.C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_tab_cfg,'&'+'&','')
|
||||
|
||||
Endif
|
||||
|
||||
@@ -13396,7 +13402,7 @@ Define Class c_conversor_prg_a_dbf As c_conversor_prg_a_bin
|
||||
.writeLog( '*** ERRORS found - Generation Cancelled' )
|
||||
Exit
|
||||
Endif
|
||||
SET STEP ON
|
||||
|
||||
toFoxBin2Prg.updateProcessedFile( lnIDInputFile )
|
||||
.writeBinaryFile_STRUCTURE( @toTable, @toFoxBin2Prg, @lcAlterTable )
|
||||
|
||||
@@ -13606,58 +13612,94 @@ SET STEP ON
|
||||
Local I, lnCodError, loEx As Exception ;
|
||||
, loIndex As CL_DBF_INDEX Of 'FOXBIN2PRG.PRG' ;
|
||||
, loDBFUtils As CL_DBF_UTILS Of 'FOXBIN2PRG.PRG' ;
|
||||
, loLang As CL_LANG Of 'FOXBIN2PRG.PRG' ;
|
||||
, ldLastUpdate ;
|
||||
, lcIndexFile, llStandAlone
|
||||
|
||||
, lcIndexFile
|
||||
|
||||
With This As c_conversor_prg_a_dbf Of 'FOXBIN2PRG.PRG'
|
||||
Store Null To loIndex
|
||||
Store 0 To lnCodError
|
||||
Store '' To lcIndex, lcIndexFile
|
||||
loDBFUtils = Createobject('CL_DBF_UTILS')
|
||||
Store '' To lcIndex
|
||||
Store .NULL. To lcIndexFile
|
||||
|
||||
If toTable._Indexes.Count # 0 Then
|
||||
loDBFUtils = Createobject('CL_DBF_UTILS')
|
||||
|
||||
loLang = _Screen.o_FoxBin2Prg_Lang
|
||||
toFoxBin2Prg.writeLog( Replicate('+', 100) )
|
||||
toFoxBin2Prg.writeLog( loLang.C_INDEX2BIN_PROCESSING_LOC )
|
||||
toFoxBin2Prg.writeLog( ' ' + Replicate('-', 98) )
|
||||
|
||||
*-- Regenero los 璯dices
|
||||
For Each loIndex In toTable._Indexes FoxObject
|
||||
lcIndex = 'INDEX ON ' + loIndex._Key
|
||||
For Each loIndex In toTable._Indexes FoxObject
|
||||
DO CASE
|
||||
CASE ISNULL ( m.lcIndexFile ) AND EMPTY (m.loIndex._IndexFile)
|
||||
toFoxBin2Prg.writeLog( loLang.C_INDEX2BIN_STRUCTURAL_LOC )
|
||||
toFoxBin2Prg.writeLog( ' ' + Replicate('- ', 49) )
|
||||
|
||||
If loIndex._TagType = 'BINARY'
|
||||
lcIndex = lcIndex + ' BINARY'
|
||||
Else
|
||||
lcIndex = lcIndex + ' COLLATE "' + loIndex._Collate + '"'
|
||||
CASE ISNULL ( m.lcIndexFile ) AND m.loIndex._StandAlone
|
||||
toFoxBin2Prg.writeLog( loLang.C_INDEX2BIN_STANDALONE_LOC + m.loIndex._IndexFile )
|
||||
|
||||
If Not Empty(loIndex._Filter)
|
||||
lcIndex = lcIndex + ' FOR ' + loIndex._Filter
|
||||
Endif
|
||||
CASE ISNULL ( m.lcIndexFile )
|
||||
toFoxBin2Prg.writeLog( loLang.C_INDEX2BIN_COMPOUND_LOC + m.loIndex._IndexFile )
|
||||
toFoxBin2Prg.writeLog( ' ' + Replicate('- ', 59) )
|
||||
|
||||
lcIndex = lcIndex + ' ' + loIndex._Order
|
||||
CASE ! m.lcIndexFile == m.loIndex._IndexFile AND m.loIndex._StandAlone
|
||||
toFoxBin2Prg.writeLog( ' ' + Replicate('-', 98) )
|
||||
toFoxBin2Prg.writeLog( loLang.C_INDEX2BIN_STANDALONE_LOC + m.loIndex._IndexFile )
|
||||
|
||||
If Not Inlist(loIndex._TagType, 'NORMAL', 'REGULAR')
|
||||
CASE ! m.lcIndexFile == m.loIndex._IndexFile
|
||||
toFoxBin2Prg.writeLog( ' ' + Replicate('-', 98) )
|
||||
toFoxBin2Prg.writeLog( loLang.C_INDEX2BIN_COMPOUND_LOC + m.loIndex._IndexFile )
|
||||
toFoxBin2Prg.writeLog( ' ' + Replicate('- ', 59) )
|
||||
ENDCASE
|
||||
lcIndexFile = m.loIndex._IndexFile
|
||||
|
||||
lcIndex = 'INDEX ON ' + loIndex._Key
|
||||
|
||||
If loIndex._TagType = 'BINARY'
|
||||
lcIndex = lcIndex + ' BINARY'
|
||||
Else
|
||||
lcIndex = lcIndex + ' COLLATE "' + loIndex._Collate + '"'
|
||||
|
||||
If Not Empty(loIndex._Filter)
|
||||
lcIndex = lcIndex + ' FOR ' + loIndex._Filter
|
||||
Endif
|
||||
|
||||
lcIndex = lcIndex + ' ' + loIndex._Order
|
||||
|
||||
If Not Inlist(loIndex._TagType, 'NORMAL', 'REGULAR')
|
||||
*-- Si es PRIMARY lo cambio a CANDIDATE y luego lo recodifico
|
||||
lcIndex = lcIndex + ' ' + Strtran( loIndex._TagType, 'PRIMARY', 'CANDIDATE' )
|
||||
lcIndex = lcIndex + ' ' + Strtran( loIndex._TagType, 'PRIMARY', 'CANDIDATE' )
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If m.loIndex._StandAlone Then
|
||||
lcIndex = m.lcIndex + ' TO ' + m.loIndex._IndexFile
|
||||
Else &&m.loIndex._StandAlone
|
||||
lcIndex = m.lcIndex + ' TAG ' + loIndex._TagName + Iif( Empty( m.loIndex._IndexFile ), '', ' OF ' + m.loIndex._IndexFile )
|
||||
Endif &&m.loIndex._StandAlone
|
||||
If m.loIndex._StandAlone Then
|
||||
lcIndex = m.lcIndex + ' TO ' + m.lcIndexFile
|
||||
Else &&m.loIndex._StandAlone
|
||||
lcIndex = m.lcIndex + ' TAG ' + loIndex._TagName + Iif( Empty( m.lcIndexFile ), '', ' OF ' + m.lcIndexFile )
|
||||
toFoxBin2Prg.writeLog( ' ' + m.loIndex._TagName )
|
||||
Endif &&m.loIndex._StandAlone
|
||||
|
||||
&lcIndex.
|
||||
Endfor
|
||||
&lcIndex.
|
||||
Endfor
|
||||
|
||||
toFoxBin2Prg.writeLog( Replicate('+', 100) + 0h0D0A )
|
||||
|
||||
Use In (Select(Juststem(.c_OutputFile)))
|
||||
Use In (Select(Juststem(.c_OutputFile)))
|
||||
|
||||
*-- La actualizaci鏮 de la fecha sirve para evitar diferencias al regenerar el DBF
|
||||
If toFoxBin2Prg.l_ClearDBFLastUpdate Then
|
||||
ldLastUpdate = Evaluate( '{^2013/11/04}' )
|
||||
Else
|
||||
ldLastUpdate = Evaluate( '{^' + toTable._LastUpdate + '}' )
|
||||
Endif
|
||||
If toFoxBin2Prg.l_ClearDBFLastUpdate Then
|
||||
ldLastUpdate = Evaluate( '{^2013/11/04}' )
|
||||
Else
|
||||
ldLastUpdate = Evaluate( '{^' + toTable._LastUpdate + '}' )
|
||||
Endif
|
||||
|
||||
loDBFUtils.write_DBC_BackLink( .c_OutputFile, toTable._Database, ldLastUpdate )
|
||||
loDBFUtils.write_DBC_BackLink( .c_OutputFile, toTable._Database, ldLastUpdate )
|
||||
|
||||
toFoxBin2Prg.updateProcessedFile()
|
||||
toFoxBin2Prg.updateProcessedFile()
|
||||
Endif &&toTable._Indexes.COUNT # 0
|
||||
toFoxBin2Prg.writeLog( Replicate('+', 100) )
|
||||
Endwith && THIS
|
||||
|
||||
|
||||
@@ -25619,7 +25661,8 @@ Define Class CL_DBF_INDEXES As CL_COL_BASE
|
||||
|
||||
Try
|
||||
Local I, lcText, loEx As Exception ;
|
||||
, loIndex As CL_DBF_INDEX Of 'FOXBIN2PRG.PRG'
|
||||
, loIndex As CL_DBF_INDEX Of 'FOXBIN2PRG.PRG' ;
|
||||
loLang As CL_LANG Of 'FOXBIN2PRG.PRG'
|
||||
Store Null To loIndex
|
||||
lcText = ''
|
||||
Dimension taTagInfo(1,6)
|
||||
@@ -25655,8 +25698,9 @@ Define Class CL_DBF_INDEXES As CL_COL_BASE
|
||||
lcIndexFile As String,;
|
||||
lcIndexType As String
|
||||
|
||||
loLang = _Screen.o_FoxBin2Prg_Lang
|
||||
toFoxBin2Prg.writeLog( Replicate('+', 100) )
|
||||
toFoxBin2Prg.writeLog( ' Processing index tags' )
|
||||
toFoxBin2Prg.writeLog( loLang.C_INDEX2TXT_PROCESSING_LOC )
|
||||
|
||||
|
||||
*!* Changed by: SF 18.3.2021
|
||||
@@ -25703,7 +25747,7 @@ Define Class CL_DBF_INDEXES As CL_COL_BASE
|
||||
laIndexFiles( 1 )
|
||||
|
||||
toFoxBin2Prg.writeLog( ' ' + Replicate('-', 98) )
|
||||
toF1oxBin2Prg.writeLog( ' Additional index files' )
|
||||
toF1oxBin2Prg.writeLog( loLang.C_INDEX2TXT_EXTRAFILES_LOC )
|
||||
toFoxBin2Prg.writeLog( ' ' + Replicate('- ', 49) )
|
||||
|
||||
*Additional index files
|
||||
@@ -25741,11 +25785,11 @@ Define Class CL_DBF_INDEXES As CL_COL_BASE
|
||||
|
||||
Catch To m.loEx When m.loEx.ErrorNo = 1
|
||||
*File Not found
|
||||
toFoxBin2Prg.writeLog( ' Not a File ' + m.lcIndexFile)
|
||||
toFoxBin2Prg.writeLog( loLang.C_INDEX2TXT_NOFILE_LOC + m.lcIndexFile)
|
||||
|
||||
Catch To m.loEx When m.loEx.ErrorNo=114
|
||||
*INDEX does not match
|
||||
toFoxBin2Prg.writeLog( ' Index does not match table ' + m.lcIndexFile)
|
||||
toFoxBin2Prg.writeLog( loLang.C_INDEX2TXT_NOTTHISTABLE_LOC + m.lcIndexFile)
|
||||
|
||||
Catch To m.loEx
|
||||
If This.n_Debug > 0 And _vfp.StartMode = 0
|
||||
@@ -29945,6 +29989,14 @@ Define Class CL_LANG As Custom
|
||||
C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = ""
|
||||
C_WITH_ERRORS_LOC = ""
|
||||
|
||||
C_INDEX2TXT_PROCESSING_LOC = ""
|
||||
C_INDEX2TXT_EXTRAFILES_LOC = ""
|
||||
C_INDEX2TXT_NOFILE_LOC = ""
|
||||
C_INDEX2TXT_NOTTHISTABLE_LOC = ""
|
||||
C_INDEX2BIN_PROCESSING_LOC = ""
|
||||
C_INDEX2BIN_STRUCTURAL_LOC = ""
|
||||
C_INDEX2BIN_STANDALONE_LOC = ""
|
||||
C_INDEX2BIN_COMPOUND_LOC = ""
|
||||
|
||||
|
||||
Procedure Init
|
||||
@@ -30140,6 +30192,7 @@ Define Class CL_LANG As Custom
|
||||
TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_tab_cfg TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||
<<>>################################################################################################################
|
||||
<<>>-- Individual DBF configuration file (syntax: filename.dbf.cfg) Defaults see FoxBin2prg.cfg
|
||||
<<>>Version: <<_Screen.c_FB2PRG_EXE_Version>>
|
||||
<<>>****************************************************************************************************************
|
||||
<<>>
|
||||
<<>>DBF_Conversion_Support: <1,2,4,8> && 0=No support, 1=Generate Header TXT only (Diff), 2=Generate Header TXT and BIN (Merge/Only Structure!), 4=Generate TXT with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data)
|
||||
@@ -30196,6 +30249,14 @@ Define Class CL_LANG As Custom
|
||||
.C_WARNING_LOC = "AVERTISSEMENT!"
|
||||
.C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "AVERTISSEMENT!" + CR_LF+ "ASSUREZ VOUS NE UTILISEZ PAS UN ALIAS DE TABLE SUR LES EXPRESSIONS INDEX CL仉!! (exemple: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag keyname)"
|
||||
.C_WITH_ERRORS_LOC = "avec des erreurs"
|
||||
.C_INDEX2TXT_PROCESSING_LOC = " Processing index"
|
||||
.C_INDEX2TXT_EXTRAFILES_LOC = " Additional index files"
|
||||
.C_INDEX2TXT_NOFILE_LOC = " Not a File "
|
||||
.C_INDEX2TXT_NOTTHISTABLE_LOC = " Index does not match table "
|
||||
.C_INDEX2BIN_PROCESSING_LOC = " Creating index"
|
||||
.C_INDEX2BIN_STRUCTURAL_LOC = " TAGs for structural index"
|
||||
.C_INDEX2BIN_STANDALONE_LOC = " Standalone index "
|
||||
.C_INDEX2BIN_COMPOUND_LOC = " TAGs for compound index "
|
||||
|
||||
Case Inlist(tcLanguage, '34', 'ES') && Spanish (Espa隳l)
|
||||
*-------------------------------------------------------------------------------------------------------------------------------------------
|
||||
@@ -30369,6 +30430,7 @@ Define Class CL_LANG As Custom
|
||||
TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_tab_cfg TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||
<<>>################################################################################################################
|
||||
<<>>-- Archivo de configuraci鏮 individual para DBF (sintaxis: archivo.dbf.cfg) Defaults see FoxBin2prg.cfg
|
||||
<<>>Version: <<_Screen.c_FB2PRG_EXE_Version>>
|
||||
<<>>****************************************************************************************************************
|
||||
<<>>
|
||||
<<>>DBF_Conversion_Support: <1,2,4,8> && Ver esta misma configuraci鏮 m嫳 arriba
|
||||
@@ -30425,6 +30487,14 @@ Define Class CL_LANG As Custom
|
||||
.C_WARNING_LOC = ",TENCI粍!"
|
||||
.C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = ",TENCI粍!" + CR_LF+ "ASEG湹ESE DE QUE NO EST<53> USANDO UN ALIAS DE TABLA EN LAS EXPRESIONES DE LOS 泩DICES!! (ej: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag nombreclave)"
|
||||
.C_WITH_ERRORS_LOC = "con errores"
|
||||
.C_INDEX2TXT_PROCESSING_LOC = " Processing index"
|
||||
.C_INDEX2TXT_EXTRAFILES_LOC = " Additional index files"
|
||||
.C_INDEX2TXT_NOFILE_LOC = " Not a File "
|
||||
.C_INDEX2TXT_NOTTHISTABLE_LOC = " Index does not match table "
|
||||
.C_INDEX2BIN_PROCESSING_LOC = " Creating index"
|
||||
.C_INDEX2BIN_STRUCTURAL_LOC = " TAGs for structural index"
|
||||
.C_INDEX2BIN_STANDALONE_LOC = " Standalone index "
|
||||
.C_INDEX2BIN_COMPOUND_LOC = " TAGs for compound index "
|
||||
|
||||
Case Inlist(tcLanguage, '49', 'DE') && German (Alem嫕)
|
||||
*-------------------------------------------------------------------------------------------------------------------------------------------
|
||||
@@ -30582,7 +30652,7 @@ Define Class CL_LANG As Custom
|
||||
<<>>
|
||||
<<>>----------------------------------------------------------------------------------------------------------------
|
||||
<<>>-- Optionen f僡 DBF (Transformation der DBF)
|
||||
<<>>DBF_BinChar_Base64: 1 && Für Felder mit Zeicehn Typ (C,V,M), wenn NoCPTrans, dann 0=nicht transform,ieren, 1=Führe Base64 Transformation aus (default)
|
||||
<<>>DBF_BinChar_Base64: 1 && Für Felder mit Zeichen Typ (C,V,M), wenn NoCPTrans, dann 0=nicht transform,ieren, 1=Führe Base64 Transformation aus (default)
|
||||
<<>> && Dies entspricht dem Flag 4096 in CursorToXML()
|
||||
<<>> && Diese Option kann auch per Tabelle gesetzt werden.
|
||||
<<>>DBF_IncludeDeleted: 0 && 0=Ohne gel飉chte Datens酹ze (default), 1=Mit gel飉chten Datens酹zen
|
||||
@@ -30624,6 +30694,7 @@ Define Class CL_LANG As Custom
|
||||
TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_tab_cfg TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||
<<>>################################################################################################################
|
||||
<<>>-- Individual DBF configuration file (Syntax: <Tabellenname>.dbf.cfg im Verzeichnis der Tabelle) Defaults siehe FoxBin2prg.cfg
|
||||
<<>>Version: <<_Screen.c_FB2PRG_EXE_Version>>
|
||||
<<>>****************************************************************************************************************
|
||||
<<>>
|
||||
<<>>DBF_Conversion_Support: <1,2,4,8> && 0=Aus
|
||||
@@ -30636,7 +30707,7 @@ Define Class CL_LANG As Custom
|
||||
<<>>DBF_Conversion_Condition: <c_Expression> && Optional, Ausdruck f僡 SELECT FOR. ie: age > 10 AND NOT DELETED()
|
||||
<<>> && leer: Alle, au絽r DBF_IncludeDeleted
|
||||
<<>>DBF_IndexList: <cFile_List> && Kommagetrennte Liste von Dateien. Zus酹zliche Index - Dateien. CDX oder IDX. Nicht der Strukturelle Index
|
||||
<<>>DBF_BinChar_Base64: <0,1> && Für Felder mit Zeicehn Typ (C,V,M), wenn NoCPTrans, dann 0=nicht transform,ieren, 1=Führe Base64 Transformation aus
|
||||
<<>>DBF_BinChar_Base64: <0,1> && Für Felder mit Zeichen Typ (C,V,M), wenn NoCPTrans, dann 0=nicht transform,ieren, 1=Führe Base64 Transformation aus
|
||||
<<>> && Dies entspricht dem Flag 4096 in CursorToXML()
|
||||
<<>> && Diese Option kann auch per Tabelle gesetzt werden.
|
||||
<<>>DBF_IncludeDeleted: <0,1> && 0=Ohne gel飉chte Datens酹ze, 1=Mit gel飉chten Datens酹zen
|
||||
@@ -30690,6 +30761,15 @@ Define Class CL_LANG As Custom
|
||||
.C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "WARNUNG!" + CR_LF+ "STELLEN SIE SICHER, DAS KEIN TABELLENALIAS IM INDEXAUSDRUCK BENUTZT WIRD!! (z.B.: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag keyname)"
|
||||
.C_WITH_ERRORS_LOC = "mit Fehlern"
|
||||
|
||||
.C_INDEX2TXT_PROCESSING_LOC = " Ermittle Index"
|
||||
.C_INDEX2TXT_EXTRAFILES_LOC = " Zusätzliche Index Dateien"
|
||||
.C_INDEX2TXT_NOFILE_LOC = " Keine Datei "
|
||||
.C_INDEX2TXT_NOTTHISTABLE_LOC = " Index passt nicht zur Tabelle "
|
||||
.C_INDEX2BIN_PROCESSING_LOC = " Erstelle Index"
|
||||
.C_INDEX2BIN_STRUCTURAL_LOC = " TAGs für den strukturellen Index"
|
||||
.C_INDEX2BIN_STANDALONE_LOC = " Eigenständige Indexdatei: "
|
||||
.C_INDEX2BIN_COMPOUND_LOC = " TAGs für verbundene Indexdatei: "
|
||||
|
||||
Otherwise && English (Ingl廥)
|
||||
*-------------------------------------------------------------------------------------------------------------------------------------------
|
||||
*-- NOTE: MUST USE DOUBLE QUOTES, OR SYNTAX ERRORS HAPPEN WHEN COMPILING. STRANGE :(
|
||||
@@ -30863,6 +30943,7 @@ Define Class CL_LANG As Custom
|
||||
TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_tab_cfg TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||
<<>>################################################################################################################
|
||||
<<>>-- Individual DBF configuration file (syntax: filename.dbf.cfg) Defaults see FoxBin2prg.cfg
|
||||
<<>>Version: <<_Screen.c_FB2PRG_EXE_Version>>
|
||||
<<>>****************************************************************************************************************
|
||||
<<>>
|
||||
<<>>DBF_Conversion_Support: <0,1,2,4,8> && 0=No support, 1=Generate Header TXT only (Diff), 2=Generate Header TXT and BIN (Merge/Only Structure!), 4=Generate TXT with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data)
|
||||
@@ -30919,6 +31000,16 @@ Define Class CL_LANG As Custom
|
||||
.C_WARNING_LOC = "WARNING!"
|
||||
.C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "WARNING!" + CR_LF+ "MAKE SURE YOU ARE NOT USING A TABLE ALIAS ON INDEX KEY EXPRESSIONS!! (ex: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag keyname)"
|
||||
.C_WITH_ERRORS_LOC = "with errors"
|
||||
|
||||
.C_INDEX2TXT_PROCESSING_LOC = " Processing index"
|
||||
.C_INDEX2TXT_EXTRAFILES_LOC = " Additional index files"
|
||||
.C_INDEX2TXT_NOFILE_LOC = " Not a File "
|
||||
.C_INDEX2TXT_NOTTHISTABLE_LOC = " Index does not match table "
|
||||
.C_INDEX2BIN_PROCESSING_LOC = " Creating index"
|
||||
.C_INDEX2BIN_STRUCTURAL_LOC = " TAGs for structural index"
|
||||
.C_INDEX2BIN_STANDALONE_LOC = " Standalone index "
|
||||
.C_INDEX2BIN_COMPOUND_LOC = " TAGs for compound index "
|
||||
|
||||
.n_LanguageSelectedMethod = 0 && 0=Automatic with VERSION(3)
|
||||
|
||||
Endcase
|
||||
|
||||
Reference in New Issue
Block a user