From d064083fe253d02722bba559097bddb9bfbd6f0f Mon Sep 17 00:00:00 2001 From: Lutz Date: Wed, 23 Feb 2022 21:03:13 +0100 Subject: [PATCH] Bug fix worked #77 changed documentation and templates --- .github/CONTRIBUTING.md | 3 +- docs/FoxBin2Prg_Changes.md | 5 +- foxbin2prg.cfg.txt | 202 ++++++++++++++++--------------------- foxbin2prg.dbf.cfg.txt | 118 ++++++++++++++++++---- foxbin2prg.exe | Bin 761914 -> 761925 bytes foxbin2prg.pjt | Bin 729183 -> 729192 bytes foxbin2prg.pjx | Bin 7433 -> 7433 bytes foxbin2prg.prg | 19 +++- 8 files changed, 213 insertions(+), 134 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index d974614..26d3412 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -40,6 +40,7 @@ Stuff is a bit scattered, so this is where to look up. 4. Create a template _foxbin2prg.cfg.txt_ for general settings or _foxbin2prg.dbf.cfg.txt_ for the settings per table. - Do this even if no change to the setting to change the version number inside this files. - Or change version number in those files manually + - **Note**. If you are not on an English comp, set in the value _Language: EN_ in your local _foxbin2prg.cfg_ to create English files. 5. If a change to the parameters is made, change _C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_ properties. 4. For changed functionality, add descriptive text on the appropriate _.md_ file. 2. Alter the version number for the EXE to the version used above. @@ -62,4 +63,4 @@ In special: Thanks ---- -Last changed: _2021/08/30_ ![Picture](../docs/pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +Last changed: _2022/02/23_ ![Picture](../docs/pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/docs/FoxBin2Prg_Changes.md b/docs/FoxBin2Prg_Changes.md index e85d472..662c806 100644 --- a/docs/FoxBin2Prg_Changes.md +++ b/docs/FoxBin2Prg_Changes.md @@ -27,6 +27,9 @@ _**Note:** you can click on the version number for downloading this version from | Rel.Date | Developer | Version | Details | | - | - | - | - | +| 2022/02/23 | LScheffler | [v1.19.69](https://github.com/fdbozzo/foxbin2prg/releases/tag/v1.19.69) | **Bug Fix**: Recreating a class while an object with same name exists in VCX fails (bjornhoeksel) | +| | | | **Enhancement**: Template configuration files FOXBIN2PRG.DBF.TXT and FOXBIN2PRG.DBF.CFG.TXT in English | +| | | | **Enhancement**: Notice in contribution file to creating files above in English | | 2022/01/18 | LScheffler | [v1.19.68](https://github.com/fdbozzo/foxbin2prg/releases/tag/v1.19.68) | **Bug Fix**: Converting MN2 to MNX ignores the programmer-defined "Pad Name" found in "Prompt Options" screen (Jimrnelson) | | | | | **Enhancement**: Minor links in readme.html | | 2021/08/20 | LScheffler | [v1.19.67](https://github.com/fdbozzo/foxbin2prg/releases/tag/v1.19.67) | **Bug Fix**: Double classes in VCX (LScheffler) | @@ -399,4 +402,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: _2022/01/17_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +Last changed: _2022/02/23_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/foxbin2prg.cfg.txt b/foxbin2prg.cfg.txt index 540ac6e..6f5035c 100644 --- a/foxbin2prg.cfg.txt +++ b/foxbin2prg.cfg.txt @@ -1,129 +1,105 @@ *################################################################################################################ -*FOXBIN2PRG.CFG Konfigurations-Optionen: (Wird die Option nicht aufgeführt, ist der Wert im Beispiel der Default) -*Version: v1.19.68 +*FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS) +*Version: v1.19.69 ***************************************************************************************************************** -* 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, wenn 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: && Hintergrundbild für das Formular zur Fortschrittsanzeige. -* && Leer erzeugt kein Hintergrundbild. Wird die Datei nicht gefunden, wird der Standardhintergrund verwendet. -*HomeDir: 1 && Speichern der HomeDir Eigenschaft in die PJX -* && 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 && Home Directory in PJX +* && 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 && Bestimmt wie die Klassen einer Bibliothek oder die objekte eines Formulars behandelt werden -* && 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 && Bestimmt beim Erzeugen von Binardateien für Klassenbibliotheken und Formulare die Zieldatei -* && 0 Keine Umlenkung -* && 1 Klassen (und Objekte) werden in die VCX/SCX geschrieben wenn eine Datei [.Basisklasse].KlassenName.tx2 gewählt wurde -* && RedirectClassType: 1 hat Vorrang -*RedirectClassType: 0 && Für Textdateien die mit UseClassPerFile>0 in der Form [.Basisklasse].KlassenName.tx2 erstellt wurden. -* && diese Dateien können als Dateiname.tx2::KlassenName::import oder als [.Basisklasse].KlassenName.tx2 importiert werden. -* && Für die zweite Form gilt (jeweils VCX oder SCX ): -* && 0 Aus [.Basisklasse].KlassenName.tx2 wird .VCX und alle Klassen dieser Bibliothek werden neu gelesen -* && 1 Aus [.Basisklasse].KlassenName.tx2 wird [.Basisklasse].KlassenName.VCX, die Bibliothek file.VCX wird ignoriert -* && 2 Aus [.Basisklasse].KlassenName.tx2 wird .VCX aber alle anderen Klassen bleiben unverändert -*ClassPerFileCheck: 0 && Test, ob dateien aus die in der Basisdatei definert wurden, einbezogen wurden. -* && 0 Kein Test -* && 1 Teste, ob die Datei [.Basisklasse].KlassenName.tx2 einbezogen wurde -* && Nur für die [.Basisklasse].KlassenName.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 && Determines how a library (or form) will handle included class (or, for forms, objects) +* && 0 One library.tx2 file +* && 1 Multiple file.class.tx2 files +* && 2 Multiple file.baseclass.class.tx2 files +*RedirectClassPerFileToMain: 0 && When regenerating binary files, determine target file +* && 0 Don't redirect to file.tx2 +* && 1 Redirect to file.tx2 when selecting file[.baseclass].class.tx2 +* && RedirectClassType: 1 has precedence +*RedirectClassType: 0 && For classes created with UseClassPerFile>0 in the form file[.baseclass].class.tx2 +* && Those files could be imported like file.tx2::Class::import or like file[.baseclass].class.tx2 +* && For the second form: +* && 0 Redirect file[.baseclass].class.tx2 to file.VCX and add / replace all other classes of this library +* && 1 Redirect file[.baseclass].class.tx2 to file[.baseclass].class.VCX and do not touch file.VCX +* && 2 Redirect file[.baseclass].class.tx2 to file.VCX and do not touch other classes of file.VCX +*ClassPerFileCheck: 0 && Check, if files listed in the main file of a library or form will be included +* && 0 Don't check file inclusion +* && 1 Check file[.baseclass].class.tx2 inclusion +* && Only used if import file is in file[.baseclass].class.tx2 syntax +* && Ignored for RedirectClassType: 2 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*-- 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 .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 Dokumentation: 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=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ätzliche Endungen -*extension: fk2=fkx && Text Datei für FKY -*extension: me2=fkx && 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 6a0bf4e..6f5035c 100644 --- a/foxbin2prg.dbf.cfg.txt +++ b/foxbin2prg.dbf.cfg.txt @@ -1,21 +1,105 @@ *################################################################################################################ -*-- Individual DBF configuration file (Syntax: .dbf.cfg im Verzeichnis der Tabelle) Defaults siehe FoxBin2prg.cfg -*Version: v1.19.68 +*FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS) +*Version: v1.19.69 ***************************************************************************************************************** -*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. +*-- 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 && Home Directory in PJX +* && 0 don't save HomeDir in PJ2 +* && 1 save HomeDir in PJ2 +*---------------------------------------------------------------------------------------------------------------- + +*-- 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 && Determines how a library (or form) will handle included class (or, for forms, objects) +* && 0 One library.tx2 file +* && 1 Multiple file.class.tx2 files +* && 2 Multiple file.baseclass.class.tx2 files +*RedirectClassPerFileToMain: 0 && When regenerating binary files, determine target file +* && 0 Don't redirect to file.tx2 +* && 1 Redirect to file.tx2 when selecting file[.baseclass].class.tx2 +* && RedirectClassType: 1 has precedence +*RedirectClassType: 0 && For classes created with UseClassPerFile>0 in the form file[.baseclass].class.tx2 +* && Those files could be imported like file.tx2::Class::import or like file[.baseclass].class.tx2 +* && For the second form: +* && 0 Redirect file[.baseclass].class.tx2 to file.VCX and add / replace all other classes of this library +* && 1 Redirect file[.baseclass].class.tx2 to file[.baseclass].class.VCX and do not touch file.VCX +* && 2 Redirect file[.baseclass].class.tx2 to file.VCX and do not touch other classes of file.VCX +*ClassPerFileCheck: 0 && Check, if files listed in the main file of a library or form will be included +* && 0 Don't check file inclusion +* && 1 Check file[.baseclass].class.tx2 inclusion +* && Only used if import file is in file[.baseclass].class.tx2 syntax +* && Ignored for RedirectClassType: 2 +*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +*-- DBC options +*- File per DBC options (UseFilesPerDBC: 1) +*OldFilesPerDBC: 0 && 1=Turns the File per DBC options on, 0 uses the old UseClassPerFile etc settings. +* && Options below will only read if OldFilesPerDBC is set 1 before! +* && If OldFilesPerDBC is set 0 later, alle setting will be lost +*UseFilesPerDBC: 0 && 0=One database dc2 file, 1=Multiple file.*.*.dc2 files +* && 0 creates only a file.dc2 with all DBC (file) data +* && 1 creates a file.dc2 with DBC properties +* && and additional DBC files per DBC item (stored-proc, table, ..) +* && Note: recration only if RedirectFilePerDBCToMain is 1 +*RedirectFilePerDBCToMain: 0 && 0=Don't redirect to file.dc2, 1=Redirect to file.tx2 when selecting file.item.*.dc2 +*ItemPerDBCCheck: 0 && 0=Don't check file.item.*.dc2 inclusion, 1=Check file.item.*.dc2 inclusion +*---------------------------------------------------------------------------------------------------------------- + +*-- General files +*NoTimestamps: 1 && Clear timestamps of several file types by default for minimize text-file differences +*ClearUniqueID: 1 && 0=Keep UniqueID in text files, 1=Clear Unique ID. Useful for Diff and Merge +*OptimizeByFilestamp: 0 && 1=Optimize file regeneration depending on file timestamp. Dangerous while working with branches! +*RemoveNullCharsFromCode: 1 && 1=Drop NULL chars from source code +*RemoveZOrderSetFromProps: 0 && 0=Do not remove ZOrderSet property from object, 1=Remove ZOrderSet property from object +*PRG_Compat_Level: 0 && 0=Legacy, 1=Use HELPSTRING as Class Procedure comment +*---------------------------------------------------------------------------------------------------------------- + +*-- PJX special +*BodyDevInfo: 0 && 0=Don't keep DevInfo for body pjx records, 1=Keep DevInfo +*---------------------------------------------------------------------------------------------------------------- + +*-- DBF special +*ClearDBFLastUpdate: 1 && 0=Keep DBF LastUpdate, 1=Clear DBF LastUpdate. Useful for Diff. +*ExcludeDBFAutoincNextval: 0 && 0=Do not exclude this value from db2, 1=Exclude this value from db2 +*DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf +*DBF_Conversion_Excluded: && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf +*DBF_BinChar_Base64: 1 && For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default) +*DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records +*---------------------------------------------------------------------------------------------------------------- + +*-- Text file extensions +*extension: tx2=newext && Specify extensions to use. Default FoxBin2Prg extensions ends in '2' (see at the bottom) +*-- Example configuration for SourceSafe compatibility: +*extension: pj2=pja && Text file to PJX +*extension: vc2=vca && Text file to VCX +*extension: sc2=sca && Text file to SCX +*extension: fr2=fra && Text file to FRX +*extension: lb2=lba && Text file to LBX +*extension: mn2=mna && Text file to MNX +*extension: db2=dba && Text file to DBF +*extension: dc2=dca && Text file to DBC +*-- Additional extensions +*extension: fk2=fkx && Text file to FKY +*extension: me2=fkx && Text file to MEM * \ No newline at end of file diff --git a/foxbin2prg.exe b/foxbin2prg.exe index 0dc432edc165e953109f4a481d991b6052e207dc..c9d39b659903cbf3a5fd9ab771a8389e2a9884e1 100644 GIT binary patch delta 15248 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¿-^vL7l5zP!$M=$3N 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 diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 8fe234756b39bad5161976f380930ac36b7231bf..f16ae2f12c7846823120c1a5fe4fb3b2f619eab4 100644 GIT binary patch delta 39 qcmeCQ>a=1p5MvVG$g-V<-PFLy(!$7O^C6aICJ4vSaa=1p5MvbD$g-V<-N?+q#Msnq^C6aICNRgy(sZ*A`(9B1!}tmg diff --git a/foxbin2prg.prg b/foxbin2prg.prg index a29d32a..3b49ec6 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -280,10 +280,12 @@ * 12/04/2021 LScheffler v1.19.67 Docu: examples and template for config files reworked * 18/01/2022 LScheffler v1.19.68 Docu: Minor links in readme.html * 18/01/2022 LScheffler v1.19.68 Bug Fix: Converting MN2 to MNX ignores the programmer-defined "Pad Name" found in "Prompt Options" screen +* 23/02/2022 LScheffler v1.19.69 Bug Fix: Creating a class, when an object is named equal to this class * * *--------------------------------------------------------------------------------------------------- * +* 23/02/2022 bjornhoeksel Bug REPORT v1.19.69 Creating a class, when an object is named equal to this class * 18/01/2022 Jimrnelson BUG REPORT v1.19.67 Converting MN2 to MNX ignores the programmer-defined "Pad Name" found in "Prompt Options" screen * 05/11/2021 LScheffler BUG REPORT v1.19.66 Double classes in VCX * 05/08/2021 siara-cc BUG REPORT v1.19.65 Incorrect version number shown. @@ -953,7 +955,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.68' + c_FB2PRG_Version_Real = '1.19.69' *-- c_Language = '' && EN, FR, ES, DE c_Language_In = '(auto)' @@ -11586,8 +11588,21 @@ Define Class c_conversor_prg_a_vcx As c_conversor_prg_a_bin *!* SELECT TABLABIN +*!* Changed by: SF 23.02.2022 +*!* +*!* Changed by: SF
+*!* https://github.com/fdbozzo/foxbin2prg/issues/77 / If a classname is used as objectname too, an error is reported +*!* A class is Objname with empty parent field, while an object has parent filled. +*!*
+*!*
+ +* LOCATE; +* FOR OBJNAME==loClase._ObjName LOCATE; - FOR OBJNAME==loClase._ObjName + FOR OBJNAME==loClase._ObjName; + AND EMPTY(Parent) + +*!* /Changed by SF 07.12.2021 IF FOUND() THEN *SF 20211207 *SET STEP ON