|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.06.2016, 07:54 | #1 |
Пользователь
Регистрация: 02.04.2014
Сообщений: 18
|
создание массива вариантов
Доброго дня!
Нужны помощь и совет при решении следующей задачи. Есть массив данных, который описывается структурой: имя, тип переменной, длина, величина. Имя и тип переменной по сути коды, например, 0 - длина, 1 - высота и т.п.; 0 - byte, 1 - string; 2 - word и т.п. Длина - размерность (если 1, то число; >1 массив). Величина - значение переменной имя. Если длина = 1, то величина = значению (только для 4 байтовых типов), если длина >1, то величина = смещению в байтах, начиная с которого в файле содержится массив. Задача считать параметр величина в один массив. Думал, что это можно сделать, создав массив вариантов, но пока без результатов. Код:
|
23.06.2016, 18:24 | #2 |
Регистрация: 01.07.2010
Сообщений: 8
|
Тут замечательный пример... переработай под себя.
http://programmersforum.ru/showpost....7&postcount=14 |
26.06.2016, 17:40 | #3 |
Пользователь
Регистрация: 02.04.2014
Сообщений: 18
|
WindWest,
К сожалению я не обладаю глубокими знаниями в программировании, поэтому не понял, как указанный пример может мне помочь. Свою задачу я смог реализовать самостоятельно. Непосредственно считать из потока в массив вариантов у меня не получилось. Здесь получись пойти 2 путями: 1. Считать данные в переменную заданного типа элемент массива (я это делал через нетипизированный файл и BlockRead()). 2. Считать данные в динамический массив заданного типа из потока, а потом с помощью DynArrayToVariant() конвертировать этот массив в вариант-массив. Привожу код этой реализации. Пришлось создавать отдельный тип для каждого массива определенного типа. По другому не представляю, как можно было сделать. Пришлось также отказаться от использования VarAsType(), т.к. она не хотела выдавать true для variant array of double, хотя для других типов функция правильно работала. Также на корректно сработала DynArrayToVariant для конвертации динамического массива word, поэтому поэтому пришлось вариант массив для этого типа пришлось вводить поэлементно. Если у кого-то будут соображения относительно решения задачи, буду рад выслушать. Код:
|
26.06.2016, 22:41 | #4 |
Регистрация: 01.07.2010
Сообщений: 8
|
А почему именно такая структура данных это условие или ваше видение решения?
Для каких практических целей данная программа? Последний раз редактировалось WindWest; 26.06.2016 в 23:07. |
27.06.2016, 00:15 | #5 |
Пользователь
Регистрация: 02.04.2014
Сообщений: 18
|
эта структура описывает данные в формате TIFF и GeoTIFF. А цель программы - считать данные, обработать и совершать различные манипуляции.
Базовая спецификация формата Структура описывает тэг данных об изображении. Поле FOffset содержит информацию об изображении, как разрешение, сжатие и др, которые представляются одним числом. Но и есть другие данные, например, значение пикселя, географическая проекция и др., которые представляют массивы смещений и кол-во байтов для чтения. Вот я и пытался значения этого поля считать в один массив, который содержит разные типы данных размерностью от 1 до N |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание массива | Катя100 | Помощь студентам | 5 | 05.05.2013 15:50 |
Перебор вариантов из элементов массива | Taranov | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 20.04.2013 22:01 |
Создание массива | ValentinBuruak | Помощь студентам | 6 | 07.09.2012 13:10 |
Создание массива А(10,7) | Queit72ru | Помощь студентам | 5 | 30.11.2011 18:15 |
создание массива | lg12 | Помощь студентам | 13 | 23.08.2009 15:13 |