Получить текстовый заголовок из бинарного файла - VB
Формулировка задачи:
Привет форумчанам!
Есть необходимость зачитать текстовый заголовок графического файла (DICOM), не загружая весь файл. Исходя из FAQ по DICOM, длина заголовка 794 байта ("...в DICOM-файле первые 128 байт не используются (заполнены нулями), за ними следуют символы 'D', 'I', 'C', 'М'. Далее следует определенным образом сгруппированная информация заголовка, занимающая 794 байта..."). Вот их то как бы выдернуть и прочитать. На первый взгляд задача пустяковая, но уперся в нее рогом уже 3-й день!
В общем-то файлики по 5 кб, можно и весь загрузить как текст и находить нужную инфу среди кракозябров, но если блокнотом файл открывается весь, а через Open ... For Input только первый блок или строка, либо вообще выдает ошибку (62: Input past end of file)! Файл корректный, приложениями для просмотра инфа из заголовков отображается правильно.
Пробовал так (SR000001 - этот файл без расширения):
выдает 18 символов и всё (922 - длина вместе с первыми пустыми 128 байтами)!
И бинарно весь файл:
Вообще - 0.
Подскажите, кто в теме!
Файл во вложении
Листинг программы
- Dim MyFile
- Dim usr As String * 922
- MyFile = FreeFile
- Open (App.Path & "\SR000001") For Binary As #MyFile
- Get #MyFile, 922, usr
- Close #MyFile
- MsgBox usr
Листинг программы
- Dim Str As String
- Dim FileNum As Byte
- FileNum = FreeFile
- Open App.Path & "\SR000001" For Binary As FileNum
- Str = Space(LOF(FileNum))
- Get #FileNum, , Str
- Text1 = Text1 & Str
- Close #FileNum
Решение задачи: «Получить текстовый заголовок из бинарного файла»
textual
Листинг программы
- Public Type hdrDICOM
- Preamble(1 To 128) As Byte
- DICM As Long
- End Type
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д