# Purpose of this document This document is an attempt to recreate the original documentation of FoxBin2Prg out of CodePlex. I found the documentation on [foxbin2prg](https://github.com/fdbozzo/foxbin2prg/blob/master/README.md) a bit brief. For a short what and why, see there. The original document was created by [Fernando D. Bozzo](https://github.com/fdbozzo) whom I like to thank for the great project. Pictures are taken from the original project. As far as possible these are the original documents. Changes are added where functionality is changed. ---- ![VFPX logo](https://vfpx.github.io/images/vfpxbanner_small.gif) This project is part of VFPX. ---- # FoxBin2Prg - a Binary to Text converter for MS Visual Foxpro 9, SP1 ## Source Original repository at https://github.com/fdbozzo/foxbin2prg, this is a fork available on https://github.com/lscheffler/foxbin2prg/tree/fork ## Requirements - A copy of MS VFP9 SP1, at least _3504_ - Runs with VFPA ## Demo video [See YouTube demo video of FoxBin2Prg used with PlasticSCM](http://youtu.be/sE4wQ50Itqg) ## What is FoxBin2Prg 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. #### Advantages: - 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 **regenerate 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 - 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 and MNX files, for which a _Text_ version is generated with pj2, sc2, vc2, fr2, lb2, dc2, db2 and mn2 extensions. The extensions may be reconfigured to be compatible with SCCAPI (just tested with SourceSafe). ##### Example ![FoxBin2prg_scctextx-vs-FoxBin2Prg_scx_EN.png](pictures/FoxBin2prg_scctextx-vs-FoxBin2Prg_scx_EN.png) ![FoxBin2prg_scctextx-vs-FoxBin2Prg_mnx_EN.png](pictures/FoxBin2prg_scctextx-vs-FoxBin2Prg_mnx_EN.png) ## Usage FoxBin2Prg can be used in tree ways: 1. [EXE version](./FoxBin2Prg_Run.md): (Recommended and fastest) - All-inclusive, you just need foxbin2prg.exe and filename_caps.exe/cfg. - Runs from windows 1. [PRG version](./FoxBin2Prg_Run.md): - 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 1. [Object version](./FoxBin2Prg_Object.md): - Usable out of own code - expandable ## Keep reading: - [FoxBin2Prg Internals and Configuration](./FoxBin2Prg_Internals.md) - [FoxBin2Prg and use with SCM tools](./FoxBin2Prg_SCM.md) - [FoxBin2Prg Full Change History](./FoxBin2Prg_Changes.md)