как я могу считать двоичный файл с помощью VBA?

Ваша переменная с именем data должна оказаться словарем, а не списком. Поэтому, когда вы пытаетесь выполнить «for row in data:», вы говорите: «Делайте следующее для каждого ключа в словаре», , а не для элементов в списке! Словари не упорядочены, но независимо от того, какой ключ сначала выбирается как row, команда не выполняется, потому что она не может найти внутри нее ничего, что называется «symmetrixID». Если, например, HostID был первым ключом, выбранным в цикле, то row['symmetrixID'] означает data['HostID']['symmetrixID'].

Если вы посмотрите более внимательно, в словаре есть только один список, который нужно перебрать, и это data["perf_data"]. Так что попробуйте петлю там.

На данный момент ваши данные в строке: , Если вы сначала не измените все эти значения с плавающей точкой на строки, join не будет работать. В любом случае, вы можете заменить команду print нужной вам командой записи.

7
задан 18 March 2009 в 22:11
поделиться

2 ответа

Необходимо открыть его с помощью "Двоичный Доступ".

См. http://www.vbforums.com/showthread.php?t=430424

Sub Temp()
    Dim intFileNum%, bytTemp As Byte, intCellRow%
    intFileNum = FreeFile
    intCellRow = 0
    Open "C:\temp.bin" For Binary Access Read As intFileNum
    Do While Not EOF(intFileNum)
        intCellRow = intCellRow + 1
        Get intFileNum, , bytTemp
        Cells(intCellRow, 1) = bytTemp
    Loop
    Close intFileNum
End Sub
7
ответ дан 6 December 2019 в 10:53
поделиться

Другой способ - использовать ADODB.Stream:[12107 impression( Извините, я не совсем уверен, в какой библиотеке он находится, поэтому в этом примере кода используется CreateObject и буквальное значение 1 вместо именованная константа adTypeBinary!)

6
ответ дан 6 December 2019 в 10:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: