Показать сообщение отдельно
  #1  
Старый 11.08.2016, 16:48
-=#PupaJr#=- -=#PupaJr#=- вне форума
Новичок
 
Регистрация: 17.08.2010
Сообщения: 74
Репутация: 518
Печаль Запись и чтение разно-типизированного файла

Доброго всем.
Есть стандартный файл литографии STL - дока в сети есть но всёже приведу
Его структура:
80 первых байт текст - комменты
4 байта число элементов (треугольников) (тип Dword)
4 по 4 Real32 - нормаль XYZ и координаты ХYZ вершин треугольника
2 байта вспомогательная инфа.
и того 80 + 4 + 50 + 50 +50 +.....+50(раз элементов).
составляю типы:
Код:
type triangle=record
 nv:single
 tx:single
 ty:single
 tz:single
 tc:word
end
type mstl=record
 comm:string  // 80 
 numt:dword  // 4
 ztrian:triangle // 50
end
Программа компилится, запускается но при какой либо попытке чтения вылетает I/O error и всё стоп.
К тому же не ясно, как перебирать в таком типе все треугольники (50 байт 4х4 +2)
при чтении указывать как массив(максючисло треуг.допустим 6000000): ztrian:array [0..6000000] of triangle .
А как писать обратно в такой файл? и если писать массив то запишется весь??? (6000000???) а мне надо скажем 10000 всего?
Что не делаю то I/O error или вместо данных (достоверно прочтёных в фирменной программе) получаю не координаты и сумашедшие числа...
ХЕЛП...
Ответить с цитированием