![]() |
Ответ: Бинарные файлы
надуманные проблемы совместимости обойти просто - достаточно их игнорировать :)
little-endian почти везде |
Ответ: Бинарные файлы
Цитата:
На счёт переменных, честно говоря на практике сталкивался только при парсинге одного формата данных (нет гарантии, что числа выворачивались там с каким-то умыслом). Поэтому, не могу 100% гарантировать, а лишь предполагаю и опасаюсь (вспоминая сокеты и htonl/ntohl), что эффект имеет место быть. |
Ответ: Бинарные файлы
Цитата:
если же интересует практическая сторона но хочешь услышать "технически подкованный ответ который хоть в квн вставляй", так вот, количество букв в алфавите бинарных данных - 255, в ASCII - 127 скажем, те запись в текстовом виде всегда будет требовать больше байт чем в бинарном, а возможность "читать файл в блокноте" довольно спорна если это данные от программы для программ :crazy: |
Ответ: Бинарные файлы
Цитата:
Меня же более всего волнуют [потенциальные] проблемы переносимости. Далее: в бинарном алфавите (раз уж мы обратились к теории передачи информации) - 256 символов. 7-битная аськи, канеш справедливо, но подразумевалась более привычная 8-битная, расширенная региональной таблицей. 256=256. В бинарном виде записывается весь контейнер (напоминаю - речь о числах), а не только значащие биты, т.о. текстовое представление будет эффективней бинарного для всех случаев (см. первый пост): sizeof(type)>floor(logX(number))+1, где Х - принятая для отображения с\с для случая int VS 10-base числа от 0 до 999, т.к. 4>floor(2.9...)+1 |
Ответ: Бинарные файлы
impersonalis
так если у тебя число от 0 до 999 то зачем тебе писать его в 4 байта ? хватит 2 байт (short : от 0 до 65535), 2 байта меньше 3 байт необходимых для записи 999 |
Ответ: Бинарные файлы
Цитата:
Borland Delphi 7 Скомпилил на 98 винде, перенёс на 2K,XP - получи кракозябры Скомпилил на 2K,XP, перенёс на 98 - текст не отображается в принципе Blitz3D тоже показал, что всё с русским не так уж и хорошо. Народ патчил ОС, патчил финальную exe, выносил текст из сорсов (ну это имхо всегда надо делать) и даже полностью заменял блицевский текст на свою реализацию. Таки решили, да. |
Ответ: Бинарные файлы
Всем отписавшимся - большое спасибо: помогли выработать более объективный взгляд на ситуацию!
|
Ответ: Бинарные файлы
Для шлифовки баланса геймплея - само собой только текст, сейвы в бинарке.
Но так как 95% файлов в тексте, то ответил только текст....возможно в будующем полностью на текст перейду, так удобней. |
Ответ: Бинарные файлы
Имею для C# свою бинарную сохранялку со структурой типа бинарного JSON и возможностью кодировать кастомные классы (делал для сокращения размера передаваемых данных по сети). Но когда надо использую XML/JSON/TEXT
|
Ответ: Бинарные файлы
Цитата:
если у бинарного формата четко определен именно... формат, то никаких проблем с его чтением не существует. есть функции преобразования big endian в little endian и наоборот. просто сохранять кусок памяти конечно не годится. но плотно упакованные структуры (без паддинга) лишнюю память не расходуют. размышления про число 999 уже обсудил jimon. кстати, "число", а по сути у тебя будет строка, нужно его сконвертировать с число. так что такой подход не наш метод. |
Ответ: Бинарные файлы
Цитата:
И главное из этого резюме: как реализовать (например, на цпп) грамотное сохранение (например double) в бинарном формате, в том числе - как реализовать код таким образом, чтобы он сам "понимал" необходимо ли использовать преобразование считанного. Цитата:
Тут даже важнее (в рамках проблемы) следующее: представление на разных компиляторах (и настройках) различаются, и потому если не убирать выравнивания то тупо переслать кусок памяти между программами не удастся. |
Ответ: Бинарные файлы
Цитата:
ps. если да, то советую глянуть как у нас устроен вызов функций - везде юзается какое нибудь заранее обговоренное соглашение о вызове ( stdcall и прочие : http://en.wikipedia.org/wiki/X86_calling_conventions ), собственно если вызывающий код (например в другой библиотеке) не знает о соглашении то ничего не получится, вот так же делается и с структурами - надо кидать структуры между программами с разным ABI напрямую ? обговаривай соглашение и всё, зачастую выравнивание на 4 обговорить и хватит, самое сложное - это указатель на метод, он везде разный размер имеет (от 8 до 20 байт) |
Ответ: Бинарные файлы
Цитата:
И именно поэтому я рассуждал о костыле в виде текстового представления. Теперь просветите: насколько непопулярны системы с big-endian? Стоит ли опасаться непереносимости сохранённых чисел? |
Ответ: Бинарные файлы
Цитата:
|
Часовой пояс GMT +4, время: 13:24. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot