Как из файла array.xml получить все массивы

Интерфейс, диалоги, темы, стили, меню
Ответить
Аватара пользователя
wamik
Сообщения: 2
Зарегистрирован: 25 авг 2015, 17:12
Откуда: ташкент

Как из файла array.xml получить все массивы

Сообщение wamik » 03 ноя 2015, 20:08

есть array.xml с over1000 массивами.

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<resources>
    
    
    <string-array name="quest0101">
        <item>01.01 В  какое  значение  можно  установить  свойство «Серии  кодов» объекта конфигурации «Справочник»?  </item>
        <item>1. Во всем справочнике  </item>
        <item>2. В пределах подчинения</item>
        <item>3. В пределах подчинения владельцу</item>
        <item>4. Верны все указанные ответы</item>
        <item>5. Верны ответы 1 и 2</item>
        <item>4</item>
     </string-array>
    
    <string-array name="quest0102">
       	<item>01.02 В каком объекте содержится редактируемая пользователем информация  </item>
        <item>1. Объекты конфигурации </item>
		<item>2. Объекты встроенного языка </item>
		<item>3. Объекты информационной базы</item>  
		<item>4. Верны ответы 1 и 3</item>
		<item>5. Верны все варианты</item>  
   		<item>3</item>
    </string-array>
    
	<string-array name="quest0103">
	    <item>01.03 Внешние обработки используются: </item>
	    <item>1. На стадии отладки, для более быстрого внесения изменений в обработку </item>
	    <item>2. Для разграничения прав доступа к обработке</item>
	    <item>3.  Для  возможности  редактирования  обработки  пользователем  в  режиме 1С:Предприятие</item>  
	    <item>1</item>
	</string-array>
	
</resources>


Сейчас здесь только три массива, но должно быть очень много (больше тысячи). первая строка массива - Вопрос, следующие строки - варианты ответов, последня строка содержит
номер правильного ответа.
Вопросы:
1. Необходимо разбить все эти массивы вопросов на 14 глав (по 70-130 вопросов в каждой). Из каждой главы необходимо выбрать СЛУЧАЙНЫЙ массив (вопрос и варианты ответов).
2. как в программном коде нужно обращаться с этим случайным массивам?

Например, я вот что набросал:
[spoiler]
вот что набросал
вот что набросал
2015-11-03 21-46-42 Скриншот экрана.png (239.53 КБ) 2948 просмотров
[/spoiler]

знаю, что это как криво. потому что если будет не 3 массива вопросов, а 1000, то мне придется вручную писать их идентификаторы (R.array.q0170, например) в массив int arrayNames []

Код: Выделить всё

int arrayNames [] = {R.array.quest0101,
			R.array.quest0102,
			R.array.quest0103
                        .........................,
                        R.array.quest1499};
Поэтому, скажите пожалуйста, какие есть варианты?

Konstantin18ko
Сообщения: 22
Зарегистрирован: 14 авг 2015, 11:46

Re: Как из файла array.xml получить все массивы

Сообщение Konstantin18ko » 19 ноя 2015, 00:03

Решить проблему не смогу, но подсказать точно смогу. lenght отвечает за длину массива, а не за перечисление.
Грубо говоря ты делаешь так:
инициализировать count = случайно.следующие_число(массив.длина_массива);
длина массива = 3,
значит count = 3.

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Как из файла array.xml получить все массивы

Сообщение klblk » 19 ноя 2015, 06:24

БД для этой задачи подойдет гораздо лучше, т.к. 1000 массивов в xml это тоже не самое лучшее решение.
Но если есть желание городить костыли, то идентифигатор ресурса можно получить программно: http://stackoverflow.com/a/15488321

Ответить