Страница: 1 |
Страница: 1 |
Вопрос: Чтение бинарного файла более 2 ГБ
Добавлено: 11.11.08 01:21
Автор вопроса:
Obfuscate
Если номер байта больше 2147483647 возникает ошибка Overflow.
Dim ByteNumber As Double
Dim MyString As String
MyString = String(65536, " ")
Open "myfile.bin" For Binary Access Read Lock Read As #1
ByteNumber = 3147483647
Get #1, ByteNumber, MyString
Close #1
Пробовал через API, функция llseek в kernel32 тоже подыхает с ошибкой Overflow, если номер байта больше 2147483648.
Как быть?
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа: Father
Вопросов: 0
Ответов: 159
Профиль | | #1
Добавлено: 11.11.08 07:14
А ты разбей абсолютный 8-ми байтовый адрес на два 4-х байтовых и передавай в SetFilePointer.
Номер ответа: 2
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #2
Добавлено: 11.11.08 12:19
+1
Только нах такие большие файлы? Образ DVD что ли читаешь?
Номер ответа: 3
Автор ответа: Father
Вопросов: 0
Ответов: 159
Профиль | | #3
Добавлено: 11.11.08 12:53
Да, вот еще что: Dim ByteNumber As Double - недоразумение. Его внутренний формат IEEE754. Не вздумай разбивать его.