diff --git a/.gitignore b/.gitignore index 4c46987..4ad1909 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -# we use the exclude-all-include-special approach, easier then excluding any odd stuff later #exclude general *.bak *.tmp diff --git a/FoxBin2PRGVersionFile.txt b/FoxBin2PRGVersionFile.txt index e086007..e6d3647 100644 --- a/FoxBin2PRGVersionFile.txt +++ b/FoxBin2PRGVersionFile.txt @@ -19,8 +19,31 @@ Supported formats are: PJX, PJM, SCX, VCX, FRX, LBX, MNX, DBC, DBF, FKY, MEM Demo video using FoxBin2Prg with PlasticSCM: http://youtu.be/sE4wQ50Itqg -Change History ------------------------------------------------------------- +Change History------------------------------------------------------------- ************ +2021-03-22 v1.19.60 +- Enhancement: FoxBin2Prg template and debug output: Completed and ordered, order synched, grouped and groups named at template. (LScheffler) +- Enhancement: Option BackgroundImage was read, but not in template (LScheffler) +- Enhancement: -cC options learned to create default FoxBin2Prg._cfg file (LScheffler) +- Enhancement: -t Option learned to create default \._cfg file, if table is open. (LScheffler) +- Enhancement: Handling of additional non structural index per DBF in Bin2Text and Text2Bin. See [Config per DBF](./FoxBin2Prg_Internals.md#configuration-per-table). (LScheffler) +- Enhancement: Debug-Logging for Index (LScheffler) +- Bug Fix: DBF_Conversion_Condition was read, but never used (LScheffler) +- Bug Fix: DBF_Conversion_Order sets an index that later would be stored as structural index (LScheffler) +- Bug Fix: config options with text value fail, if line comment is set (LScheffler) +- Bug Fix: issue #53 Variable lnFileCount in get_filesfromdirectory (LScheffler) + +2021-03-09 v1.19.59 +- Feature: Logging of settings as settings object passed to execute method (Option debug > 0) (LScheffler) +- Feature: Added option to create config file template based on current values of a directory (LScheffler) +- Bug Fix: RedirectClassType = 2, Path was set wrong in special config (LScheffler) +- Bug Fix: RedirectClassType = 2, UseClassPerFile = 2 failed (LScheffler) +- Doc: Improved, Better description of ClassPerFileCheck, tcOutputFolder. (LScheffler) + +2021-03-04 v1.19.58 +- Feature: Added support for writing to a different folder than the source code using a new tcOutputFolder parameter (Doug Hennig) +- Feature: Added a configuration option: HomeDir, which determines if HomeDir is saved in PJ2 files (the default is 1 for Yes) (Doug Hennig) + 2021-03-05 v1.19.57.0 - Bug Fix: RedirectClassType = 2 mixed up PATH (LScheffler) - Doc: improved (LScheffler) diff --git a/ThorUpdater/FoxBin2Prg.zip b/ThorUpdater/FoxBin2Prg.zip index 1b934ca..254ae18 100644 Binary files a/ThorUpdater/FoxBin2Prg.zip and b/ThorUpdater/FoxBin2Prg.zip differ diff --git a/ThorUpdater/FoxBin2PrgVersion.txt b/ThorUpdater/FoxBin2PrgVersion.txt index 1df09c1..58b147c 100644 --- a/ThorUpdater/FoxBin2PrgVersion.txt +++ b/ThorUpdater/FoxBin2PrgVersion.txt @@ -1,7 +1,7 @@ lparameters toUpdateObject local ldDate ldDate = date() -toUpdateObject.AvailableVersion = 'FoxBin2Prg-1.19.59' + ; +toUpdateObject.AvailableVersion = 'FoxBin2Prg-1.19.60' + ; '-update-' + dtoc(ldDate, 1) return toUpdateObject diff --git a/ThorUpdater/Project.txt b/ThorUpdater/Project.txt index 01864a9..afc7b7c 100644 --- a/ThorUpdater/Project.txt +++ b/ThorUpdater/Project.txt @@ -1,5 +1,5 @@ appName = FoxBin2Prg appID = FoxBin2Prg -majorVersion = 1.19.59 +majorVersion = 1.19.60 excludeFiles = *.bak,*.bat,*.fxp,*.tbk,*.tmp,*.dat,*.log,*.cvp,README.md,.gitignore,*.zip*,*.7z*,*- copia.*,*.private.*,test_*.*,xx*.*,*.lnk,vfp_init.*,tmp*.*,*.err, *.conflict.*, *.private., .gitignore, *.pui. *.prj* excludeFolders = *.plastic*,*ThorUpdater*,*Documentacion*,*foxunit*,*foxunit_*,*pruebas varias*,*versiones*,*datos_test* diff --git a/docs/FoxBin2Prg_Changes.md b/docs/FoxBin2Prg_Changes.md index 204975a..72bebf5 100644 --- a/docs/FoxBin2Prg_Changes.md +++ b/docs/FoxBin2Prg_Changes.md @@ -30,7 +30,7 @@ _**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](https://github.com/fdbozzo/foxbin2prg/releases/tag/v1.19.60) | **Enhancement**: FoxBin2Prg template and debug output: Completed and ordered, order synched, grouped and groups named at template. | +| 2021/03/22 | LScheffler | [v1.19.60](https://github.com/fdbozzo/foxbin2prg/releases/tag/v1.19.60) | **Enhancement**: FoxBin2Prg template and debug output: Completed and ordered, order synched, grouped and groups named at template. | | | | | **Enhancement**: Option BackgroundImage was read, but not in template | | | | | **Enhancement**: -cC options learned to create default FoxBin2Prg._cfg file | | | | | **Enhancement**: -t Option learned to create default \._cfg file, if table is open. | @@ -387,4 +387,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/20_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +Last changed: _2021/03/22_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/foxbin2prg.cfg.txt b/foxbin2prg.cfg.txt index 9e3af3e..dccc953 100644 --- a/foxbin2prg.cfg.txt +++ b/foxbin2prg.cfg.txt @@ -1,120 +1,96 @@ *################################################################################################################ -*FOXBIN2PRG.CFG Konfigurations-Optionen: (Wird die Option nicht aufgeführt, ist der Wert im Beispiel der Default) +*FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS) *Version: v1.19.60 -*Optionen für Verzeichnis e:\se\vfpx\foxbin2prg, gelesen am 2021/03/21 18:15:54 ***************************************************************************************************************** -* 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: .dbf.cfg im Verzeichnis der Tabelle) -* 6., Parameter des Aufrufs von FOXBIN2PRG.EXE. - -* Einige Parameter im Aufruf von FOXBIN2PRG.EXE übersteueren diese Vorgaben (bis auf die Defaults) -***************************************************************************************************************** - -*Interne Einstellungen -Language: (auto) && Sprache für Anzeigen und Logs. EN=English, FR=Français, ES=Español, DE=Deutsch, Nicht definiert = Automatisch [DEFAULT] -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 -ExtraBackupLevels: 1 && Anzahl der Backup-Ebenen der Binärdateien 0=kein Backup, 1=.BAK, n>1= n-Backup-Ebenen, .n.BAK -Debug: 0 && 0=Individuelles Logging ist aus 1= Individuelles Log per Datei .Log -BackgroundImage: E:\SE\VFPX\FOXBIN2PRG\foxbin2prg.jpg && Hintergrundbild für das Formular zur Fortschrittsanzeige. -HomeDir: 1 && 0 = Die Eigenschaft HomeDir wird nicht in die PJ2 gespeichert, [1 = Die Eigenschaft wird gespeichert] - -*---------------------------------------------------------------------------------------------------------------- -*-- Konvertierungs Optionen: -PJX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Binärdatei (Merge) -VCX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Binärdatei (Merge) -SCX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Binärdatei (Merge) -FRX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Binärdatei (Merge) -LBX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Binärdatei (Merge) -MNX_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Binärdatei (Merge) -DBC_Conversion_Support: 2 && 0=Aus, 1=Erzeuge nur Textdatei (Diff), 2=Erzeuge Text- und Binärdatei (Merge) -DBF_Conversion_Support: 1 && 0=Aus -* && 1=Erzeuge Textdatei nur für Struktur (Diff) -* && 2=Erzeuge Text- und Binärdatei nur für Struktur (Merge) -* && 4=Erzeuge Textdatei nur für Struktur und Daten (Diff) -* && 8=Erzeuge Text- und Binärdatei nur für Struktur und Daten (Merge) -FKY_Conversion_Support: 1 && 0=Aus, 1=Erzeuge nur Textdatei (Diff) -MEM_Conversion_Support: 1 && 0=Aus, 1=Erzeuge nur Textdatei (Diff) +*-- Settings for internal work, not processing +*Language: (auto) && Language of shown messages and LOGs. EN=English, FR=French, ES=Españ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 .Log by default +*BackgroundImage: && Backgroundimage for process form. Empty for empty Background. File not found uses default. +*HomeDir: 1 && 0 = don't save HomeDir in PJ2, [1 = save HomeDir in PJ2] *---------------------------------------------------------------------------------------------------------------- -* ------Einstellungen für Container-Dateien (not pjx) -*-- Optionen fü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 .KlassenName.vc2 files, 2=Mehrere Dateien .Basisklasse.KlassenName.vc2 -* && Für 1, 2 wird jeweils auch ein Headerdatei .vc2 erzeugt -RedirectClassPerFileToMain: 0 && 0=Keine Umlenkung, 1=Klassen (und Objekte) werden in die VCX/SCX geschrieben wenn eine Datei [.Basisklasse].KlassenName.vc2 gewä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ändert -ClassPerFileCheck: 0 && 0=Aus, 1=Teste, ob die Datei einbezogen [.Basisklasse].KlassenName.vc2 wurde -* && Nur für die file[.baseclass].class.tx2 Syntax -* && Wird für RedirectClassType: 2 ignoriert +*-- 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 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 && 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 DBC -*- Optionen für Datei per DBC options (UseFilesPerDBC: 1) -OldFilesPerDBC: 1 && 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 .db2 mit allem Inhalt der DBC -* && 1 Erzeugt eine Datei .dc2 mit den Eigenschaften der Datenbank -* && und zusätzlich eine Datei für jedes Item der Datenbank (Gespeicherte Prozeduren, Tabellen, Views, ..) -* && Achtung! Diese Dateien werden nur dann in die Binädatei einbezogen, wenn RedirectFilePerDBCToMain 1 ist -*RedirectFilePerDBCToMain 0 && Originale Dokumntation: 0=Keine Umlenkung, 1=Erzeuge .dbc, wenn .item.*.dc2 gewählt wurde -* && Die Binär-Datenbank wird nur dann automatisch zusammen gefügt, wenn diese Option 1 ist! -ItemPerDBCCheck: 0 && 0=Aus, 1=Teste, ob .item.*.dc2 einbezogen wird. +*-- 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 *---------------------------------------------------------------------------------------------------------------- -*Allgemeine Dateien -NoTimestamps: 1 && 0=Zeitstempel einiger Dateiarten werden nicht gelöscht 1=Zeitstempel werden zum Minimieren der Text-Datei-Unterschiede gelöscht -ClearUniqueID: 1 && 0=Erhalte die Unique ID in den Text-Dateien, 1=Lösche Unique ID. Nützlich für Diff und Merge -OptimizeByFilestamp: 0 && 0=Aus, 1=Optimierte Erzeugung der Binärdateien in Abhängigkeit vom Zeitstempel. Gefä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 -PRG_Compat_Level: 0 && [0=Legacy], 1=Nutze HELPSTRING als Class Procedure Kommentar +*-- 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 *---------------------------------------------------------------------------------------------------------------- -*-- speziell PJX -BodyDevInfo: 0 && 0=DevInfo im body-pjx-Datensatz wird nicht erhalten], 1=DevInfo wird erhalten +*-- PJX special +*BodyDevInfo: 0 && [0=Don't keep DevInfo for body pjx records], 1=Keep DevInfo *---------------------------------------------------------------------------------------------------------------- -*-- speziell DBF -ClearDBFLastUpdate: 1 && 0=Erhalte DBF LastUpdate, 1=Lösche DBF LastUpdate. Nützlich für Diff und Merge -ExcludeDBFAutoincNextval: 0 && 0=Aus, 1=Entferne diesen Wert aus der Textdate der Datenbank (db2) -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ßen angegeben werden, z.B.: www,fb2p_free.dbf -* && Leer=Keine Datei auschließen -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öschte Datensätze (default), 1=Mit gelöschten Datensätzen -* && Diese Option kann auch per Tabelle gesetzt werden. +*-- 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-Datei Endungen -*extension: tx2=newext && Umdefinition der Dateiendung der Textdateien. Die vordefinierten Endungen enden mit '2' (Beispiel siehe Ende dieser Datei) -*-- Beispiel für geänderte Textdatei Endungen, hier für SourceSafe Kompatibiltät: -extension: pj2=PJ2 && Text Datei für PJX -extension: vc2=VC2 && Text Datei für VCX -extension: sc2=SC2 && Text Datei für SCX -extension: fr2=FR2 && Text Datei für FRX -extension: lb2=LB2 && Text Datei für LBX -extension: mn2=MN2 && Text Datei für MNX -extension: db2=DB2 && Text Datei für DBF -extension: dc2=DC2 && Text Datei für DBC -*-- Zusätzliche Endungen -extension: fk2=FK2 && Text Datei für FKY -extension: me2=ME2 && Text Datei für MEM -* +*-- 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 +* \ No newline at end of file diff --git a/foxbin2prg.dbf.cfg.txt b/foxbin2prg.dbf.cfg.txt index e4b600e..3c8796a 100644 --- a/foxbin2prg.dbf.cfg.txt +++ b/foxbin2prg.dbf.cfg.txt @@ -1,21 +1,12 @@ *################################################################################################################ -*-- Individual DBF configuration file (Syntax: .dbf.cfg im Verzeichnis der Tabelle) Defaults siehe FoxBin2prg.cfg +*-- Individual DBF configuration file (syntax: filename.dbf.cfg) Defaults see 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ärdatei nur für Struktur (Merge) -* && 4=Erzeuge Textdatei nur für Struktur und Daten (Diff) -* && 8=Erzeuge Text- und Binärdatei nur für Struktur und Daten (Merge) -*DBF_Conversion_Order: && Optional, Reihenfolge der Datensätze. Ausdruck für INDEX ON. ie: name+str(age,3) -* && leer: normale Reihenfolge -*DBF_Conversion_Condition: && Optional, Ausdruck für SELECT FOR. ie: age > 10 AND NOT DELETED() -* && leer: Alle, außer DBF_IncludeDeleted -*DBF_IndexList: && Kommagetrennte Liste von Dateien. Zusätzliche Index - Dateien. CDX oder IDX. Nicht der Strukturelle Index -*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öschte Datensätze, 1=Mit gelöschten Datensätzen -* && Diese Option kann auch per Tabelle gesetzt werden. +*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) +*DBF_Conversion_Order: && Field expresion. ie: name+str(age,3) +*DBF_Conversion_Condition: && Logical expression. ie: age > 10 AND NOT DELETED() +*DBF_IndexList: && comma delimited list of additonal non structural index files, cdx or idx +*DBF_BinChar_Base64: <0,1> && For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform +*DBF_IncludeDeleted: <0,1> && 0=Do not include deleted records, 1=Include deleted records * \ No newline at end of file diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index 14dbf72..05b9a24 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,14 +26,14 @@ _LegalTrademark = "MIT License" _ProductName = "FOXBIN2PRG" _MajorVer = "1" _MinorVer = "19" -_Revision = "51" +_Revision = "60" _LanguageID = "1034" _AutoIncrement = "0" * * -*<.HomeDir = 'c:\desa\foxbin2prg' /> +*<.HomeDir = 'e:\se\vfpx\foxbin2prg' /> FOR EACH loProject IN _VFP.Projects FOXOBJECT loProject.Close() diff --git a/foxbin2prg.prg b/foxbin2prg.prg index a063a7a..034b51b 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -255,18 +255,16 @@ * 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.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 ._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 - -* xx/xx/2021 LScheffler v1.19.60 Enhancement: FoxBin2Prg template and debug output ordered and completed, order synched, grouped and groups named -* xx/xx/2021 LScheffler v1.19.60 Enhancement: Option BackgroundImage was read, but not in template -* xx/xx/2021 LScheffler v1.19.60 Bug Fix: issue #53 Variable lnFileCount in get_filesfromdirectory - +* 22/03/2021 LScheffler v1.19.60 Enhancement: -cC options learned to create default FoxBin2Prg._cfg file +* 22/03/2021 LScheffler v1.19.60 Enhancement: -t Option learned to create default ._cfg file, if table is open. +* 22/03/2021 LScheffler v1.19.60 Enhancement: Handling of additional non structural index per DBF in Bin2Text and Text2Bin see config per DBF +* 22/03/2021 LScheffler v1.19.60 Enhancement: Debug-Logging for Index +* 22/03/2021 LScheffler v1.19.60 Bug Fix: DBF_Conversion_Condition was read, but never used +* 22/03/2021 LScheffler v1.19.60 Bug Fix: DBF_Conversion_Order sets an index that later would be stored as structural index +* 22/03/2021 LScheffler v1.19.60 Bug Fix: config options with text value fail, if line comment is set +* 22/03/2021 LScheffler v1.19.60 Enhancement: FoxBin2Prg template and debug output ordered and completed, order synched, grouped and groups named +* 22/03/2021 LScheffler v1.19.60 Enhancement: Option BackgroundImage was read, but not in template +* 22/03/2021 LScheffler v1.19.60 Bug Fix: issue #53 Variable lnFileCount in get_filesfromdirectory * * *--------------------------------------------------------------------------------------------------- @@ -718,10 +716,10 @@ Do Case Case Pcount()=1 And tcType == '-t' And !Empty( Dbf() ) tc_InputFile = Dbf() + '._cfg' - Case Pcount()=1 And UPPER( tcType ) =='-C' + Case Pcount()=1 And Upper( tcType ) =='-C' tc_InputFile = 'FoxBin2PRG._cfg' - Case Pcount()#2 And ( UPPER( tcType ) =='-C' OR tcType =='-t' ) + Case Pcount()#2 And ( Upper( tcType ) =='-C' Or tcType =='-t' ) tc_InputFile = "" tcType = "" @@ -2387,7 +2385,7 @@ Define Class c_foxbin2prg As Session *settings for internal work, not processing * Depricated: - Case Left( laConfig(m.I), 17 ) == Lower('DontShowProgress:') + Case Left( laConfig(m.I), 17 ) == Lower('DontShowProgress:') lcValue = Alltrim( Substr( laConfig(m.I), 18 ) ) If Not Inlist( Transform(tcDontShowProgress), '0', '1', '2' ) And Inlist( lcValue, '0', '1', '2' ) Then tcDontShowProgress = lcValue @@ -2397,7 +2395,7 @@ Define Class c_foxbin2prg As Session Case Left( laConfig(m.I), 9 ) == Lower('Language:') *-- CASO ESPECIAL: El lenguaje no se guarda en lo_CFG, porque es un seteo Global. - lcValue = Alltrim( Substr( laConfig(m.I), 10 , AT('&'+'&',laConfig(m.I)) - 10 ) ) + lcValue = Alltrim( Substr( laConfig(m.I), 10 , At('&'+'&',laConfig(m.I)) - 10 ) ) .changeLanguage(lcValue) lo_CFG.c_Language_In = m.lcValue .writeLog( C_TAB + Justfname(lcConfigFile) + ' > Language: ' + Transform(lcValue) + ' (' + .c_Language + ')' ) @@ -2687,14 +2685,14 @@ Define Class c_foxbin2prg As Session Endif Case Left( laConfig(m.I), 24 ) == Lower('DBF_Conversion_Included:') - lcValue = Alltrim( Substr( laConfig(m.I), 25 , AT('&'+'&',laConfig(m.I)) - 25 ) ) + lcValue = Alltrim( Substr( laConfig(m.I), 25 , At('&'+'&',laConfig(m.I)) - 25 ) ) If Not Empty(lcValue) Then lo_CFG.c_DBF_Conversion_Included = lcValue .writeLog( C_TAB + Justfname(lcConfigFile) + ' > DBF_Conversion_Included: ' + Transform(lo_CFG.c_DBF_Conversion_Included) ) Endif Case Left( laConfig(m.I), 24 ) == Lower('DBF_Conversion_Excluded:') - lcValue = Alltrim( Substr( laConfig(m.I), 25 , AT('&'+'&',laConfig(m.I)) - 25 ) ) + lcValue = Alltrim( Substr( laConfig(m.I), 25 , At('&'+'&',laConfig(m.I)) - 25 ) ) If Not Empty(lcValue) Then lo_CFG.DBF_Conversion_Excluded = lcValue .writeLog( C_TAB + Justfname(lcConfigFile) + ' > DBF_Conversion_Excluded: ' + Transform(lo_CFG.DBF_Conversion_Excluded) ) @@ -2716,7 +2714,7 @@ Define Class c_foxbin2prg As Session *Text file extensions Case Left( laConfig(m.I), 10 ) == Lower('Extension:') - lcConfData = Alltrim( Substr( laConfig(m.I), 11 , AT('&'+'&',laConfig(m.I)) - 11 ) ) + lcConfData = Alltrim( Substr( laConfig(m.I), 11 , At('&'+'&',laConfig(m.I)) - 11 ) ) lcExt = Alltrim( Getwordnum( lcConfData, 1, '=' ) ) lcProp = 'c_' + lcExt If Pemstatus( lo_CFG, lcProp, 5 ) @@ -3017,7 +3015,7 @@ Define Class c_foxbin2prg As Session lnFileCount = Adir(laDirFile, lcTableCFG) If lnFileCount = 1 - + to_out_DBF_CFG = Createobject("CL_DBF_CFG") If tlGenerateLog Then @@ -3039,13 +3037,13 @@ Define Class c_foxbin2prg As Session Endif Case Left( lcConfigItem, 21 ) == Lower('DBF_Conversion_Order:') - to_out_DBF_CFG.DBF_Conversion_Order = Alltrim( Substr( laConfig(m.I), 22 , AT('&'+'&',laConfig(m.I)) - 22 ) ) + to_out_DBF_CFG.DBF_Conversion_Order = Alltrim( Substr( laConfig(m.I), 22 , At('&'+'&',laConfig(m.I)) - 22 ) ) If tlGenerateLog Then This.writeLog(' ' + Justfname(lcTableCFG) + ' > DBF_Conversion_Order: ' + to_out_DBF_CFG.DBF_Conversion_Order ) Endif Case Left( lcConfigItem, 25 ) == Lower('DBF_Conversion_Condition:') - to_out_DBF_CFG.DBF_Conversion_Condition = Alltrim( Substr( laConfig(m.I), 26 , AT('&'+'&',laConfig(m.I)) - 26 ) ) + to_out_DBF_CFG.DBF_Conversion_Condition = Alltrim( Substr( laConfig(m.I), 26 , At('&'+'&',laConfig(m.I)) - 26 ) ) If tlGenerateLog Then This.writeLog(' ' + Justfname(lcTableCFG) + ' > DBF_Conversion_Condition: ' + to_out_DBF_CFG.DBF_Conversion_Condition ) Endif @@ -3055,7 +3053,7 @@ Define Class c_foxbin2prg As Session * additional options controlling * - new operations of DBF, additional list of non structural index files Case Left( lcConfigItem, 14 ) == Lower('DBF_IndexList:') - to_out_DBF_CFG.DBF_IndexList = Substr( laConfig(m.I), 15 , AT('&'+'&',laConfig(m.I)) - 15 ) + to_out_DBF_CFG.DBF_IndexList = Substr( laConfig(m.I), 15 , At('&'+'&',laConfig(m.I)) - 15 ) If tlGenerateLog Then This.writeLog(' ' + Justfname(lcTableCFG) + ' >DBF_IndexList: ' + Transform(to_out_DBF_CFG.DBF_IndexList) ) Endif @@ -3480,9 +3478,9 @@ Define Class c_foxbin2prg As Session * n_RedirectClassType = 0 will import all classes of file.VCX (as just handing file.vc2) * n_RedirectClassType = 1 will import the class to single lib file[.baseclass].class.VCX Do Case - Case LOWER(m.lcType)=='-c' + Case Lower(m.lcType)=='-c' * not handled - Case m.lcType=='-t' + Case m.lcType=='-t' * not handled Case .n_RedirectClassType # 2 * not handled @@ -3539,12 +3537,12 @@ Define Class c_foxbin2prg As Session *!* Changed by: Lutz Scheffler 15.2.2021 *!* change date="{^2021-02-15,18:44:00}" * added option to create config files - Case m.lcType=='-t' And ( Vartype( m.tc_InputFile )='C' AND !EMPTY( m.tc_InputFile ) ) + Case m.lcType=='-t' And ( Vartype( m.tc_InputFile )='C' And !Empty( m.tc_InputFile ) ) loLang = _Screen.o_FoxBin2Prg_Lang Strtofile( Strtran( Strtran( '*' + m.loLang.C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_tab_cfg, 0h0D0A, 0h0D0A + '*'), 0h0D0A + '*' + 0h0D0A, 0h0D0A0D0A), m.tc_InputFile ) - Case m.lcType=='-c' - tc_InputFile = IIF( Vartype( m.tc_InputFile )='C' AND !EMPTY( m.tc_InputFile ), m.tc_InputFile, 'FoxBin2Prg._cfg' ) + Case m.lcType=='-c' + tc_InputFile = Iif( Vartype( m.tc_InputFile )='C' And !Empty( m.tc_InputFile ), m.tc_InputFile, 'FoxBin2Prg._cfg' ) loLang = _Screen.o_FoxBin2Prg_Lang Strtofile( Strtran( '*' + Strtran( m.loLang.C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_cfg, 0h0D0A, 0h0D0A + '*'), 0h0D0A + '*' + 0h0D0A, 0h0D0A0D0A), m.tc_InputFile ) *!* /Changed by: Lutz Scheffler 15.2.2021 @@ -3568,7 +3566,7 @@ Define Class c_foxbin2prg As Session laLines(1),; laOptions(m.lnOptions,3) - tc_InputFile = IIF( Vartype( m.tc_InputFile )='C' AND !EMPTY( m.tc_InputFile ), m.tc_InputFile, 'FoxBin2Prg._cfg' ) + tc_InputFile = Iif( Vartype( m.tc_InputFile )='C' And !Empty( m.tc_InputFile ), m.tc_InputFile, 'FoxBin2Prg._cfg' ) loLang = _Screen.o_FoxBin2Prg_Lang lcText = Strtran( '*' + Strtran( m.loLang.C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_cfg, 0h0D0A, 0h0D0A + '*'), 0h0D0A + '*' + 0h0D0A, 0h0D0A0D0A) lnLines = Alines(laLines,m.lcText) @@ -3739,17 +3737,17 @@ Define Class c_foxbin2prg As Session Case m.laOptions( m.lnOption, 3 ) = 4 lcReturn = ' ' + Transform( Evaluate( m.laOptions( m.lnOption, 2 ) ) ) - lcReturn = Padr( m.lcReturn , MAX( LEN ( m.lcReturn )+1, Len( m.lcValue ) + 1 ) ) + lcReturn = Padr( m.lcReturn , Max( Len ( m.lcReturn )+1, Len( m.lcValue ) + 1 ) ) Case m.laOptions( m.lnOption, 3 ) = 5 - IF Empty( Evaluate( m.laOptions( m.lnOption, 2 ) ) ) - lcReturn = ' *' - - Else &&Empty( Evaluate( m.laOptions( m.lnOption, 2 ) ) ) - lcReturn = ' ' + Transform( Evaluate( m.laOptions( m.lnOption, 2 ) ) ) + If Empty( Evaluate( m.laOptions( m.lnOption, 2 ) ) ) + lcReturn = ' *' - Endif &&Empty( Evaluate( m.laOptions( m.lnOption, 2 ) ) ) - lcReturn = Padr( m.lcReturn , MAX( LEN ( m.lcReturn )+1, Len( m.lcValue ) + 1 ) ) + Else &&Empty( Evaluate( m.laOptions( m.lnOption, 2 ) ) ) + lcReturn = ' ' + Transform( Evaluate( m.laOptions( m.lnOption, 2 ) ) ) + + Endif &&Empty( Evaluate( m.laOptions( m.lnOption, 2 ) ) ) + lcReturn = Padr( m.lcReturn , Max( Len ( m.lcReturn )+1, Len( m.lcValue ) + 1 ) ) Case m.laOptions( m.lnOption, 3 ) = 6 If Lower( Justfname ( Evaluate( m.laOptions( m.lnOption, 2 ) ) ) ) == 'foxbin2prg.jpg' Then @@ -13720,13 +13718,13 @@ Define Class c_conversor_prg_a_dbf As c_conversor_prg_a_bin , loDBFUtils As CL_DBF_UTILS Of 'FOXBIN2PRG.PRG' ; , loLang As CL_LANG Of 'FOXBIN2PRG.PRG' ; , ldLastUpdate ; - , lcIndexFile - + , lcIndexFile + With This As c_conversor_prg_a_dbf Of 'FOXBIN2PRG.PRG' Store Null To loIndex Store 0 To lnCodError Store '' To lcIndex - Store .NULL. To lcIndexFile + Store .Null. To lcIndexFile If toTable._Indexes.Count # 0 Then loDBFUtils = Createobject('CL_DBF_UTILS') @@ -13738,27 +13736,27 @@ Define Class c_conversor_prg_a_dbf As c_conversor_prg_a_bin *-- Regenero los índices For Each loIndex In toTable._Indexes FoxObject - DO CASE - CASE ISNULL ( m.lcIndexFile ) AND EMPTY (m.loIndex._IndexFile) + Do Case + Case Isnull ( m.lcIndexFile ) And Empty (m.loIndex._IndexFile) toFoxBin2Prg.writeLog( loLang.C_INDEX2BIN_STRUCTURAL_LOC ) toFoxBin2Prg.writeLog( ' ' + Replicate('- ', 49) ) - CASE ISNULL ( m.lcIndexFile ) AND m.loIndex._StandAlone + Case Isnull ( m.lcIndexFile ) And m.loIndex._StandAlone toFoxBin2Prg.writeLog( loLang.C_INDEX2BIN_STANDALONE_LOC + m.loIndex._IndexFile ) - CASE ISNULL ( m.lcIndexFile ) + Case Isnull ( m.lcIndexFile ) toFoxBin2Prg.writeLog( loLang.C_INDEX2BIN_COMPOUND_LOC + m.loIndex._IndexFile ) toFoxBin2Prg.writeLog( ' ' + Replicate('- ', 59) ) - CASE ! m.lcIndexFile == m.loIndex._IndexFile AND m.loIndex._StandAlone + Case ! m.lcIndexFile == m.loIndex._IndexFile And m.loIndex._StandAlone toFoxBin2Prg.writeLog( ' ' + Replicate('-', 98) ) toFoxBin2Prg.writeLog( loLang.C_INDEX2BIN_STANDALONE_LOC + m.loIndex._IndexFile ) - CASE ! m.lcIndexFile == m.loIndex._IndexFile + 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 + Endcase lcIndexFile = m.loIndex._IndexFile lcIndex = 'INDEX ON ' + loIndex._Key @@ -13805,7 +13803,7 @@ Define Class c_conversor_prg_a_dbf As c_conversor_prg_a_bin toFoxBin2Prg.updateProcessedFile() Endif &&toTable._Indexes.COUNT # 0 - toFoxBin2Prg.writeLog( Replicate('+', 100) ) + toFoxBin2Prg.writeLog( Replicate('+', 100) ) Endwith && THIS @@ -25186,14 +25184,14 @@ Define Class CL_DBF_TABLE As CL_CUS_BASE Endcase * Lutz Scheffler 18.03.2021 added handling DBF_IndexList: - If lnFileCount = 1 - lc_DBF_IndexList = loDBF_CFG.DBF_IndexList - If Not Empty(lc_DBF_IndexList) - toFoxBin2Prg.writeLog(' > Using non structural index files: ' + lc_DBF_IndexList) - Endif - + If lnFileCount = 1 + lc_DBF_IndexList = loDBF_CFG.DBF_IndexList + If Not Empty(lc_DBF_IndexList) + toFoxBin2Prg.writeLog(' > Using non structural index files: ' + lc_DBF_IndexList) Endif + Endif + * Lutz Scheffler 18.03.2021 moved index to get Settings per DBF *-- Indexes loIndexes = This._Indexes @@ -25650,7 +25648,7 @@ Define Class CL_DBF_INDEXES As CL_COL_BASE llBloqueEncontrado = .T. lcFile = Strextract(m.tcLine,C_CDX_File_,'"',1) - llStandAlone = Strextract(m.tcLine,C_CDX_Type_,'"',1) == C_CDX_Type_IDX + llStandAlone = Strextract(m.tcLine,C_CDX_Type_,'"',1) == C_CDX_Type_IDX With This As CL_DBF_INDEXES Of 'FOXBIN2PRG.PRG' For I = m.I + 1 To tnCodeLines .set_Line( @tcLine, @taCodeLines, m.I ) @@ -25817,7 +25815,7 @@ Define Class CL_DBF_INDEXES As CL_COL_BASE *!* *!* lcIndexFile = Juststem( Dbf() ) + '.CDX' - + * If Tagcount() > 0 If Tagcount( m.lcIndexFile ) > 0 lcIndexType = C_CDX_Type_Struct @@ -25890,11 +25888,11 @@ Define Class CL_DBF_INDEXES As CL_COL_BASE Endif &&TAGCOUNT( m.lcIndexFile ) > 0 Catch To m.loEx When m.loEx.ErrorNo = 1 - *File Not found +*File Not found toFoxBin2Prg.writeLog( loLang.C_INDEX2TXT_NOFILE_LOC + m.lcIndexFile) Catch To m.loEx When m.loEx.ErrorNo=114 - *INDEX does not match +*INDEX does not match toFoxBin2Prg.writeLog( loLang.C_INDEX2TXT_NOTTHISTABLE_LOC + m.lcIndexFile) Catch To m.loEx @@ -25920,7 +25918,7 @@ Define Class CL_DBF_INDEXES As CL_COL_BASE Endif &&!EMPTY(m.lcText) toFoxBin2Prg.writeLog( Replicate('+', 100)+0h0D0A ) - * /SF +* /SF Catch To loEx If This.n_Debug > 0 And _vfp.StartMode = 0 @@ -30203,7 +30201,7 @@ Define Class CL_LANG As Custom <<>>-C creates a config-file (like FOXBIN2PRG.CFG) with current options of folder of <<>> If OutFileName is not given a FoxBin2Prg._cfg config file will be created at default folder <<>>-t creates a template table-config-file (like .dbf.cfg) - <<>> If OutFileName is not given, and a table is open a .dbf._cfg config file will be created at table folder. + <<>> If OutFileName is not given, and a table is open a .dbf._cfg config file will be created at table folder. <<>> <<>> ENDTEXT @@ -30253,7 +30251,7 @@ Define Class CL_LANG As Custom <<>>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 - <<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <<>> <<>>-- DBC options <<>>- File per DBC options (UseFilesPerDBC: 1) @@ -30454,7 +30452,7 @@ Define Class CL_LANG As Custom <<>>-C creates a config-file (like FOXBIN2PRG.CFG) with current options of folder of <<>> If OutFileName is not given a FoxBin2Prg._cfg config file will be created at default folder <<>>-t creates a template table-config-file (like .dbf.cfg) - <<>> If OutFileName is not given, and a table is open a .dbf._cfg config file will be created at table folder. + <<>> If OutFileName is not given, and a table is open a .dbf._cfg config file will be created at table folder. <<>> ENDTEXT *** DH 2021-03-04: added HomeDir to text @@ -30503,7 +30501,7 @@ Define Class CL_LANG As Custom <<>>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 - <<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <<>> <<>>-- DBC options <<>>- File per DBC options (UseFilesPerDBC: 1) @@ -30770,7 +30768,7 @@ Define Class CL_LANG As Custom <<>>ClassPerFileCheck: 0 && 0=Aus, 1=Teste, ob die Datei einbezogen [.Basisklasse].KlassenName.vc2 wurde <<>> && Nur für die file[.baseclass].class.tx2 Syntax <<>> && Wird für RedirectClassType: 2 ignoriert - <<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <<>> <<>>-- Optionen für DBC <<>>- Optionen für Datei per DBC options (UseFilesPerDBC: 1) @@ -30988,7 +30986,7 @@ Define Class CL_LANG As Custom <<>>-C creates a config-file (like FOXBIN2PRG.CFG) with current options of folder of <<>> If OutFileName is not given a FoxBin2Prg._cfg config file will be created at default folder <<>>-t creates a template table-config-file (like .dbf.cfg) - <<>> If OutFileName is not given, and a table is open a .dbf._cfg config file will be created at table folder. + <<>> If OutFileName is not given, and a table is open a .dbf._cfg config file will be created at table folder. <<>> <<>> ENDTEXT @@ -31038,7 +31036,7 @@ Define Class CL_LANG As Custom <<>>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 - <<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <<>>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <<>> <<>>-- DBC options <<>>- File per DBC options (UseFilesPerDBC: 1)