Jeez, I don't know how many of you guys have experience the new guy at the office, who shows up like a wrecking ball and does violence to all the norms in an effort to prove themselves.
Well, I think something like that has been going on with Rockwell regarding all of these files. While they all use the same file format, it's like a different person got a crack and choosing how they are organized. The apb is obscene.
All critical files (MER, APA, APB, SED, MED) are ole file structure. All of them can be unzipped with a zip tool like 7zip except the SED. All of them can be read using python's olefile module, except the APB. When you unzip the APB, the contents look nothing like APA/MER, there are additional ole files that end in .bk and .bak. The project structure is compressed in a horribly named .bk file, while the project information is compressed in a .bk file named after the application. Compare that to MER/APA, where when you decompress the MER/APA, all the details are right there in front of you. EDIT: Turns out the APB is a 7z file, the bk/bak file details still hold true.
I rewrote the tool in python, which I was able to move away from unzipping. This was nice because it's fast and less messy. Now, I'm finding myself adding all of these stupid cases of "If this file" or "If that file", where I'll have to unzip in some cases. What a stupid mess for no reason.
A service guy at work, years ago, made fun of me for using 7zip over WinRAR. So, when he asked me to send him a file, I zipped it, then tarballed it (tar.gz), 7zipped it, renamed the extension to txt and made a self extracting zip file with a README, telling him to change the extension back to 7z. Then finally made a multi-part RAR, each of the 6 parts were on a different thumb drive, then I mailed them to him. The file wasn't actually what he wanted, it was a README that just said "7zip FTW lol". When he called me, ****ed, I emailed him the file he needed. I feel like he went to work at RA, convinced them that they need a new APB file type, and payed me back. You win Darryl.