Taco van Ieperen wrote version 2.0 of RosettaStal and wrote,
Unfortunately, Taco's vision of everyone using the program to convert their data to CDI was unrealistic. Especially unrealistic given no compelling reason and the inherent problem of any conversion utility filtering out seemingly unimportant data as defined by the author of the software. However, Taco did have the vision of open source software.
In version 3.0 of RosettaStal, Garry Petrie added three new write filters and three new read filters. Bugs in version 2.0 while reading or writing various file types were uncovered and corrected. The software now has a more neutral stance in that it can read or write multiple file formats. But be for warned, while a conversion between two data types may proceed without an error, reading by the destination application is not guaranteed. Download the updated version of RosettaStal, use and distribute as freeware.
Reading Cave Survey Data Files
Writing Cave Survey Data Files
Depending on how RosettaStal is installed, it can be started by selecting its name from the Start Menu or double clicking its icon on the desktop. From the main dialog window, select the "Convert File..." button. Pressing the button brings up the standard Windows Open File dialog interface in that a file may be selected. The "Files of type" drop down list filters the selection field to a specific cave survey data type. Select one or more files for conversion.
For each selected file, a second dialog box appears. The "Automatic Conversion" simply saves the root of the data file and attaches the selected data type for writing, e.g. BigCave.SUR is converted to BigCave.SEF. Selection of the data type for writing is made in the drop down list. Alternately, the "Pick a name by hand" button brings up the Windows SaveAs File dialog interface. Either type the complete file name with extension for writing, or use the Files of type list to filter and add the extension automatically.
After the file is converted, a third dialog box appears and displays any messages encountered during the read and write operations. The sequence is repeated if more than one file was selected for conversion.
RosettaStal can also be associated with a file type in the "MyComputer|Tools|Folder Options..." dialog. Through an association, double clicking on a particular cave survey data type file will start RosettaStal and the program will read the selected file automatically. The file association can also be applied from an email reader or web browser.
I would like to continue promoting the expansion of RosettaStal through Open Source. RosettaStal is written with Microsoft's Visual C++ version 6.0. All of Taco's code is fully visible and I had to edit the code in several places. The file input/output routines from WinKarst were precompiled into a library and I will provide the necessary header files from WinKarst to compile RosettaStal. In this manner, authors can achieve a reasonable level of propriety. However, the biggest hurdle will be writing your code compatible with Visual C++. That was a very difficult process for me, because WinKarst is build with a different compiler. But you will find in making your base code compiler independent, its utility will increase. This will be your principle reward if you add to RosettaStal.
I build on RosettaStal to include the native data containers of WinKarst and OnStation. When a file is opened with a filter written by Taco, the data is stored internally with his container. Like wise, the same for a file opened with any of my filters. The trick is in the output path. Should the output path require the same data container as input path, then the output proceeds directly. But if there is a cross, e.g. from Taco's CDI format to my SUR format, then a data structure mapping routine is invoked. If you add a data container of your type, you are responsible for writing the input/output cross converters to the other data type containers. Hopefully, that will not be difficult by seeing my example in the source code. The source code for RosettaStal is in a zip file.
Links to other pages at this site: