Is there any documentation on the binary format of the `.app` files?

Like the title, is there any documentation on the binary format of the .app files?

As to why, I was thinking about seeing of creating something like the C# DevKit extension but for Clarion, including a Solution explorer (so you can actually work inside the .app files), is possible/doable

Not to my knowledge.
It’s been said that they are a form of TPS file, but I’m unsure of that.

I’d suggest that if you think that being able to work on an ap outside of clarion is worthwhile, that trying to modify the .APP files directly is a non-starter. However, it is no problem to call ClarionCL to export the .APP to a .TXA, and similarly to take your modified .TXA (assuming you have written it out correctly) and turn it back into an .APP. There are three in-between bits – 1. reading the .TXA into whatever data storage you feel is useful, 2. writing it back out to a .TXA --doing the first should help you with the second – and 3. designing a tool that you think is superior to the Clarion IDE that works off that stored representation of your app – and the dict – and anything else that the templates may offer you.

At one point I thought it would be useful to do that sort of exercise with the dictionary. That’s a) a lot easier – the .DCTX is nicely structured, and b) the data structures make a lot of intuitive sense so you could conceive of writing SQL (for example) to make a bunch of similar changes at the same time. For example, if you deciding you wanted to add auditing columns to every table (who changed what, when), you could write a simple SQL query to just add the necessary rows to do that to all the tables at the same time. It still took a considerable about of effort to do.

The app, I’d say the cost outweighs the benefits. Your new IDE probably has to turn the window definitions into the WYSIWYG version on the screen, and provide you with access to the template attributes that sit behind the control-template-related items. And somehow, the app that you have put in a lot of effort just to get to the point of providing you access to the things the Clarion GUI already allows you to see and change, has to make things so much easier to do that it is worth all of the effort you put into reinventing the wheel.

You can setup the IDE (and/or a single folder) to always Load/Save from TXA.

It uses an .APV file extension for the Text APP. When you open a Solution it makes the .APP from the APV. When you save the SLN it writes both APP and APV. It’s typically used for Source Control.


It is pretty hard to do serious work inside the TXA format. You may get some ideas by looking at the Wizards. They do all their work by writing a TXA. All the Wizard code it there to see in the Templates folder.

In addition to what @JonW said, you need to bear in mind the TXA format needs deciphering and then any changes to it, like adding or removing a screen control with template will need code to handle the correct removal of all templates and embeds, and vice versa if adding new screen controls with a template.

Any TXA editor app would need knowledge of the installed templates.

Its complicated, I did have an app that could import a TXA which used RegEx’s because there are some hidden gotchas in the TXA which I suspect are there to trip people up hoping to reverse engineer it.

Saying that, anything with the correct sized budget is doable. :grinning: