Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2013, 13:58   #1
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию Импорт из файла *.bin

Всем привет!
Совсем все забыл... Задача следующая есть произвольный файл *.bin
нужно сделать макрос который начиная с указанного поля заполнит строку содержимым этого файла. Под содержимым я подразумеваю значения байт.

Вот что я написал:
Код:
Sub read_bin()
Dim vesFile() As Byte
    FilesToOpen = Application.GetOpenFilename _
                  (FileFilter:="áèíàðíûå ôàéëû(*.bin), *.bin", _
                   MultiSelect:=False, Title:="Files to Merge")
    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "Íå âûáðàíî íè îäíîãî ôàéëà! Èíôîðìàöèÿ íå îáíîâëåíà!"
        GoTo ExitHandler
    End If
    ZZZ = Dir(FilesToOpen)
    qwe = FilesToOpen
Open ZZZ For Binary As #1
    fSize = LOF(1)
    ReDim vesFile(1 To fSize)
    Get #1, 1, vesFile()
Close #1

Application.ThisWorkbook.Worksheets(1).Range("a1").Resize(UBound(vesFile), UBound(vesFile, 1)) = vesFile()

ExitHandler:

End Sub
На красном все стопориться... Прошу вашей помощи! Спасибо!
Выложил пример в нем числа от 0 до 16.
Вложения
Тип файла: zip source.zip (137 байт, 9 просмотров)
Можно сделать все! Было бы время, да деньги...

Последний раз редактировалось mchip; 14.05.2013 в 14:06. Причина: Добавление примера
mchip вне форума Ответить с цитированием
Старый 14.05.2013, 15:45   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

С байтовым массивом так не получается. Можно преобразовать его в Variant():
Код:
Application.ThisWorkbook.Worksheets(1).Range("a1").Resize(, UBound(vesFile)) = Application.Index(vesFile, 0)
Строки
Код:
    ZZZ = Dir(FilesToOpen)
    qwe = FilesToOpen
совершенно не нужны, открывайте прямо
Код:
Open FilesToOpen For Binary As #1
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 14.05.2013, 15:54   #3
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Спасибо! получилось
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение bin файла. Rockot Общие вопросы Delphi 8 17.03.2013 12:26
Запрос на импорт из файла Emmelman SQL, базы данных 0 08.02.2013 11:52
Импорт данных из бинарного файла (.bin) на лист Excel Nomercy Microsoft Office Excel 24 23.08.2012 11:10
Правка EXE файла посредством bin/hex редактора. Вопрос о возможности увеличения длинны строки Вадим Мошев Общие вопросы по программированию, компьютерный форум 7 25.02.2012 00:02
Формат файла - bin DM_bite Операционные системы общие вопросы 1 10.01.2009 17:01