![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 12.04.2010
Сообщений: 8
|
![]()
Доброго дня Всем)
Столкнулся с необходимостью импорта котировок в excel из двоичного файла (формат .bin). Структура данных в файле - двумерный массив, где любая строка представляет собой последовательность 5-ти данных: время, объём1, объём2, цена1, цена2. Также известен тип данных Время - 64-bit Long Oбъём1, объём2, цена1, цена2 - 64-bit Double После некоторого изучения данной темы по просторам инета, решил попробовать извлечь хотя бы самое первое число - время. Однако получаю совсем не то число что должно быть. (получаю 721485824 вместо 1285246800692) Код:
1285246800692 | 79,875 | 79,86 | 2400000 | 1600000 1285246801902 | 79,875 | 79,855 | 2400000 | 7300000 1285246803723 | 79,875 | 79,86 | 1600000 | 1600000 Увы, работа с бинарными файлами освещена в инете не шибко широко, потому обращаюсь к вам за помощью. |
![]() |
![]() |
![]() |
#2 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ну так правильно, тип Long - это 8 байтное знаковое целое.
Это числа в диапазоне Long-типа от -2147483,648 до 2147483647 у Вас ЯВНО больше! Вас бы мог спасти тип Int64 (Тип значения Int64 представляет целые числа со знаком в диапазоне от минус 9 223 372 036 854 775 808 до плюс 9 223 372 036 854 775 807. ) но, к сожалению, MS Excel (VBA) не умеет работать с такими числами.. p.s. а зачем Вам бинарник в Excel читать? Другие ЯП не допускаются по идеологическим соображениям? ![]() ДОБАВЛЕНО Цитата:
Цитата:
Последний раз редактировалось Serge_Bliznykov; 14.02.2011 в 13:21. |
||
![]() |
![]() |
![]() |
#3 | |
Регистрация: 12.04.2010
Сообщений: 8
|
![]() Цитата:
А импорт в Excel мне необходим, так как программа для обработки и интерпретации этих данных написана под Excel. Первоначально программма импортировала текстовые данные - с ними проблем по импорту не было. Сейчас формат изменен на бинарный...увы |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
я попробовал прочитать и конвертировать
BitConverter.ToInt64 и BitConverter.ToUInt64 у меня данные не сходятся
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#5 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Nomercy
doober я пошёл от обратного. взял число 1285246800692 присвоил его в Int64, записал в файл. получилось в файле: Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#6 | |
Регистрация: 12.04.2010
Сообщений: 8
|
![]() Цитата:
00000000 00000000 00000001 00101011 00111110 10101101 11010011 00110100 И если число 1285246800692 скопировать в стандартный калькулятор в режиме программиста (Windows 7), то получим ту же самую последовательность бит. |
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 12.04.2010
Сообщений: 8
|
![]()
Костыли в данном случае мне не помогут)) Каждый час мне приходится качать 25 файлов формата тхт и подкармливать их программе. Встал вопрос автоматизиции данного нудного процесса. Однако скачать тхт-файлы с флэш-загрузчика автоматически нехавтает у меня ума. Зато источник предлагает прямые ссылки на аналогичные по содержанию файлы, но в формате bin. Таким образом если пользоваться костылями - мне придется каждый час конвертить 25 файлов бин в тхт, что к сожалению не поможет автоматизации всего процесса..(
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
ну, разумеется, конвертировать BIN -> TXT будет тот же Ваш скрипт на том же VBA! и, после конвертации, будет грузить полученный файл в Excel. и,если бинарник один, то почему текстовых файлов из него получится 25 ? впрочем, смотрите сами, как Вам лучше, дело то хозяйское... |
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 20.08.2012
Сообщений: 7
|
![]()
Задавал свой вопрос на другом форуме, но на него никто не смог ответить.
Надеюсь на вашу помощь. Заранее извиняюсь за свой вопрос в существующей теме, но моя проблема близка к ней. Есть bin файл, который считывается программой и в результате обработки которого программа выдает графики. В bin файле зашифрована таблица с данными. К сообщению прикладываю ту таблицу со значениями (http://rghost.ru/39862316) которая должна получиться в итоге из bin файла (http://rghost.ru/39856628). Это результаты показаний прибора "Терем-4" компании "Интерприбор". Т.е. файл генерируется прибором, а при подключении к компьютеру прибор скидывает информацию в программу "Терем-4" и выдает в виде графиков и таблиц. Программу так же прикладываю. Программа http://rghost.ru/39862268 (не требует взлома - бесплатная). Задача открыть bin файл в том виде котором выдает его программа "Терем-4" и заменить значение чисел. Пробовал открыть с помощью программы "Hiew" - показывает только в виде кода. Можно ли открыть какой нибудь программой, что бы отредактировать именно тот текст который в нем зашифрован, а затем сохранить? Надеюсь я смог донести свою мысль) PS: посоветовали обратиться к знатокам СУБД. Предположили, что файл может быть не зашифрован. Есть шанс, что какая-нибудь более или менее распространенная СУБД сможет открыть. Только вот какая и каким образом? |
![]() |
![]() |
![]() |
#10 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Код для обработки бинарных файлов, и для сохранения их в книге Excel, можно найти здесь:
http://excelvba.ru/tools/Attachments На днях опубликую у себя на сайте 16-ричный редактор бинарных файлов в Excel: ![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Повреждение данных при записи в середину бинарного файла | Aerial | Общие вопросы C/C++ | 2 | 01.12.2011 19:32 |
Чтение данных из бинарного файла | Faramir02 | Общие вопросы C/C++ | 3 | 22.12.2010 22:43 |
Поиск-извлечение блока данных из бинарного файла | Alter | Общие вопросы Delphi | 6 | 28.11.2009 23:12 |
Импорт данных в Excel | mMAg | Microsoft Office Excel | 2 | 20.08.2009 17:50 |
Импорт из текстового файла в Excel (DBF) | Slava | БД в Delphi | 3 | 22.07.2009 20:28 |