vitaly_l писал(а):Для Земных программистов, бинарные файлы - это норма, а для инопланетянина - это нонсенс.
Бинарные файлы - это всегда были закрытые форматы, с которыми работа ДОЛЖНА происходить в пределах одного SDK. Работа с бинарным файлом без SDK от разработчика называется хакингом.
По форматам открытым для обмена во все времена, даже во времена перфокарт, нормой были текстовые файлы. Бинарные файлы - это для инопланетян.
Добавлено спустя 1 минуту 56 секунд:vitaly_l писал(а):Кстати программы состоят из этих-же бинарных символов? Значит так можно читать и интерпретировать код любой программы?
Можно, эта работа в общем и называется хакерской, а этапы разделаются на дезасемблирование, отладку и т.п. Дебаггеры (отладчики) - это ключевой инструмент настоящего хакера. Точно также как и дезасемблеры. Но Вы, как я понимаю, не собираетесь идти в область хакинга.
Добавлено спустя 4 минуты 37 секунд:vitaly_l писал(а):Впрочем судя по всему до меня наконец-таки дошло, что #0 это не разделитель, а обыкновенный ноль который в формате PChar - воспринимается программой как разделитель. А чтобы прочитать, этот БИНАРНЫЙ формат, делить data на кусочки можно только заранее зная структуру, либо пользуясь поиском по ключевым ID представленным в IFF в виде 4х символов, типа: IMAP, CHAN, ENAB, NEGA, TMAP. А чтобы узнать их значение, нужно к позиции ID прибавить нужное кол-во символов, и скопированный результат перевести в Hex16 и в соответствии с SDK - декодировать результат в Integer, Single или 3DFloat из трёх координат итд.
В целом верно. Но самое важное в Ваших словах
"можно только заранее зная структуру". Пользоваться поиском по ключевым ID - это хакинг, т.к. может оказаться, что, например, "IMAP" будет не только как ID, но и просто частью текстового поля. Для хакинга - это норма. Для нормальной программы есть только один путь - нужно заранее зная структуру, и при этом быть уверенным, что автор формата не меняет эту структуру.
Отсюда Вам нужно работать ТОЛЬКО через SDK. Если он у Вас есть, то изучайте его. Если нет - ищите или покупайте. Если нет SDK, значит займитесь другой задачей.