Documentation of FoxBin2Prg - A Binary to Text converter for MS Visual Foxpro 9
This document introduce the basic ideas of FoxBin2Prg
The original document was created by Fernando D. Bozzo whom I like to thank for the great project.
Pictures are taken from the original project.
As far as possible these are the original documents. Changes are added where functionality is changed.
Original repository at https://github.com/fdbozzo/foxbin2prg.
Or install via Thor, this keeps you on the latest version.
Regenerate after download / clone / pull from https://github.com/fdbozzo/foxbin2prg.
Note: You you must run FoxBin2Prg against itself to create the binaries and exes.
Run:
CD "path_to_FoxBin2Prg"
*This uses a special configuration
DO ReCreate_FoxBin2Prg.prg
Note: Do not run FoxBin2Prg.prg directly.
- A copy of MS VFP9 SP1, at least 3504
- Runs with VFPA (Note, you need to recompile the EXE or use the PRG)
See YouTube demo video of FoxBin2Prg used with PlasticSCM
It is a program intended to be used with SCM tools (Source Code Managers, like VSS, CVS, SVN) and DVCS tools (like git, Mercurial, Plastic, and others), or as standalone program for Diff (viewing differences) and Merge operations, that pretends to substitute SccText/X and TwoFox and enhance their functionality, generating bidirectional PRG-Style versions that allow recreating the original binary file.
- It generates Text style programs (not compilable), for visual comparison out of FoxPros table based code.
- It enables the change of the Text version as easy as modifying a PRG
- All the program code is in just one PRG, to simplify its maintainability
- 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
- Takes advantage of the API using foxbin2prg as an object
- It has compatibility with SccText/X at parameter level so can be used as substitute with SourceSafe
- Productivity: You can create a shortcut in the "SendTo" folder on your user Windows Profile, so you can "send" the selected file (pjx, pj2, etc) to Foxbin2prg.exe and make on-the-fly conversions
- Modify the Text Prg-Style versions with MODIFY COMMAND (without compile) to see colored syntax, or even use the Document View to navigate the procedures
- Get back your SourceSafe projects (.pjx) from their .pjm files
- Don't infest a text based system like git with binaries
Currently supports the conversion between PJX, SCX, VCX, FRX, LBX, DBC, DBF, MNX, MEM and FKY files, for which a Text version is generated with pj2, sc2, vc2, fr2, lb2, dc2, db2, mn2, me2 and fk2 extensions. The extensions may be reconfigured to be compatible with SCCAPI (just tested with SourceSafe).
If dealing with project files, FoxBin2Prg will fail if files of the project are not stored on the drive of the project. See issue #93.
FoxBin2Prg can be used in tree ways:
- EXE version: (Recommended and fastest)
- All-inclusive, you just need foxbin2prg.exe and filename_caps.exe/cfg.
- Runs from windows
- If run from IDE, the EXE needs to be compiled for the version of FoxPro.
- PRG version:
- You need various files: foxbin2prg.prg, all the props*.txt files and filename_caps.exe/cfg.
- Runs out of VFP IDE, no problems mixing VFP 9 and VFPA
- Object version:
- Usable out of own code
- expandable
- FoxBin2Prg Full Change History
- FoxBin2Prg Internals and Configuration
- FoxBin2Prg and use with SCM tools
- FoxBin2Prg and use with git
This project is part of VFPX.