Hello y’all,
I need to get some information out of a .mcn file that is used by the Cary WinUV program (for windows XP), I know the file contains the info we’re looking for but it’s not readable on a text editor as per screenshot (the same thing appears via OSS - code and cat). Same for Nano which gives me a lot of tiny amongi.
Cary WinUV for some reason doesn’t display the information we want, who know what they were thinking.
Anyone know a way to read the characters missing?
EDIT: Thanks everyone, I solved by saving it into csv through Cary WinUV but that may not work for everyone so thanks for all the replies
It looks like it’s in a binary format and is printing control characters because it isn’t a format intended to be viewed/edited. You could try opening it in a hex editor and see if you can make any sense from that.
Looks like a proprietary binary format. There’s an open tool to turn .bkn files (apparently also something that WinUV shits out) into text files, but I can’t find anything for .mcn files.
Based on the path in the file, the software seems to have been designed for Windows XP or earlier. There’s a good chance Wine will be able to run the software that reads these files so you can export them into CSV or some other usable format.
Won’t need wine, I have access to the computer that uses Cary winUV
In that case, try exporting the data in CSV form (or some other common format). I don’t think there’s anything to read this particular proprietary format.
Doing this by hand is challenging but possible.
First you need a hex editor, not a text editor. xxd on linux will get you started but you might want something a little more user friendly.
Then look for a label for a value you know, xxd and other hex editors will show ascii text on the side. Hopefully you’ll be able to identify the value (in hexadecimal, probably 4 bytes but could be 1, 2, or 8 as well) somewhere before or after the label. You might have to get familiar with endianness, two’s compliment, and binary floating point before the numbers make sense.
Once you know how to read a value after a label you’ll need to find some label for the information you don’t know. If it isn’t displayed in the program it might not have a super readable label.
hexdump
comes stock with most distros, no editing features, buthexdump -C filename
will at least let you see what’s in the file- from control characters and control codes, it looks like everything is separated by a set of three
NUL
characters (\00
in first screenshot or^@
in the nano screenshot)- EDIT: so the field names are three
NUL
characters, text for the name, andSOH
(^A
) terminating the field name – then a padded line for the field values (values are probably meant to be fixed length)
- EDIT: so the field names are three
- if you don’t find anything more convenient, as a last resort, you can turn to
perl
andsed
, they were originally designed for situations like this, trying to get meaningful data out of disparate file formats
Maybe
strings
can get some usefull output too?Use a hex editor to read binary files. I recommend ImHex https://imhex.werwolv.net/ because it includes all sorts of advanced analysis stuff.
Can you provide the file on GitHub or something?