Здравствуйте, могу ли я как-то узнать, в какой версии AutoCAD был сохранен DWG - файл ?По первым шести байтам dwg-файла: https://en.wikipedia.org/wiki/.dwg
могу ли я как-то узнать, в какой версии AutoCAD был сохранен DWG - файл ?В какой версии или в формате какой версии? Это разные вещи.
В формате какой версиимогу ли я как-то узнать, в какой версии AutoCAD был сохранен DWG - файл ?В какой версии или в формате какой версии? Это разные вещи.
В формате какой версииНу тогда я дал правильную ссылку - не открывая в AutoCAD dwg-файл ты можешь определить в формате какой версии сохранён файл по первым шести байтам файла.
Да, я Вас понял, спасибо !В формате какой версииНу тогда я дал правильную ссылку - не открывая в AutoCAD dwg-файл ты можешь определить в формате какой версии сохранён файл по первым шести байтам файла.
А точно ли по первым шести байтам ?Здравствуйте, могу ли я как-то узнать, в какой версии AutoCAD был сохранен DWG - файл ?По первым шести байтам dwg-файла: https://en.wikipedia.org/wiki/.dwg
А точно ли по первым шести байтам ?Точно. Формат первых шести байт: ACNNNN. Будем считать от "AC1001" до "AC1032" на данный момент.
sangvinik128,Это был мой первый вариант, не удаётся, увы
Может не Input. а Get ?Код - Visual Basic [Выбрать](на VBA не пишу)
Open FilePath For Binary Access Read As #1 Dim AcadVersion(6) As Byte Get #1,6, AcadVersion Close #1
Нашел вот такую функцию:Работает. Что же я неправильно делал, буду разбираться, спасибо Вам !Код - Visual Basic [Выбрать]
Public Function GetDwgVersion(ByVal sFileName As String) As String Dim hFile As Long Dim bt12 As Byte hFile = FreeFile Open sFileName For Binary As #hFile Dim i As Integer, strVersion As String For i = 1 To 6 Get #hFile, i, bt12 strVersion = strVersion & Chr(bt12) Next i Close #hFile GetDwgVersion = strVersion End Function
Проверяй.
Что же я неправильно делалВторой параметр Get задаёт не количество байт, а номер байта в файле, с которого начинается чтение. А количество считываемых за один раз байт определяется размером переменной, в которую происходит считывание.