загружаю массив одним текстом .... @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 13 ] 
*   Список форумов / Технологии изображения / Flash » ответить » создать топик « | »
Автор Сообщение
Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Заголовок сообщения: загружаю массив одним текстом ….
Сообщение Добавлено: 20 Май 2005, 19:37:53 
Загружаю через пхп текст следующего вида :
mass=[[a,b,c,d],[a,b,c,d],[a,b,c,d]] , как это текст сделать работающим массивом ?

это не работает , получается просто текст
m = new Array();
m = mass;
@st@l@vist@
участник
70
Сообщения: 1606
Зарегистрирован: 20.03.03
Откуда: St.Petersburg
Сообщение Добавлено: 20 Май 2005, 20:20:12 
В твоем случае примерно так :)

var str = "[[a,b,c,d],[a,b,c,d],[a,b,c,d]]";
var tstr = str.split("[[").join("").split("]]").join("");
var list = tstr.split("],[");

for(var i = 0; i < list.length; i++)
{
list[i] = list[i].split(",");
}

Но, как ты наверное уже заметил, суть всего лишь в разделителях, так что проще выводить что-то вроде : "a,b,c,d|1,2,3,4|e,f,g,h" …

Сначала разбить по "|", а потом по ","
Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Сообщение Добавлено: 21 Май 2005, 10:32:00 
@st@l@vist@, что то я запутался :chih: , вот массив на самом деле такой
mass=[["Name1",x1,x2,x3,x4,x5,x6],["Name2",x1,x2,x3,x4,x5,x6],["Name3",x1,x2,x3,x4,x5,x6]] , то что ты выше написал , в этом случае подходит ? И еще я непонял для чего цикл нужен ? объясни если можно … :gent:
Король Муж.
участник
18
Сообщения: 1352
Зарегистрирован: 24.07.04
Сообщение Добавлено: 21 Май 2005, 11:33:56 
легче использовать хмл в этом случае. а если парсить твой текст в массивы то надо просто во-первых, как сказал @st@l@vist@, использовать более простой разделитель типа |, разбить текст на строки по нему, загоняя каждую строку в массив, а затем разбивать уже каждый элемент по запятым. при этом если ты захочешь обратиться к "Name", то тебе надо будет вызвать нулевой элемент дочернего массива

_________________
Здравствуй, Олимпийский!
BlooDHounD Муж.
соучастник
0
Сообщения: 585
Зарегистрирован: 12.03.04
Откуда: Беларусь - Борисов
Сообщение Добавлено: 21 Май 2005, 12:32:35 
Иещё ковычки вырезать предварительно!
@st@l@vist@
участник
70
Сообщения: 1606
Зарегистрирован: 20.03.03
Откуда: St.Petersburg
Сообщение Добавлено: 21 Май 2005, 13:33:42 
Скажи лучше для начала, что такое "Name1" и x1, x2 … xn, да и вообще задачу :)
Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Сообщение Добавлено: 21 Май 2005, 13:55:43 
@st@l@vist@,
вот часть массива , он нахдится в базе в виде такого текста , в юникоде , без всяких "ненужных символов" ,
towns=[["Берн", 216, 282, 15, 15, 0, 1], ["Рим", 256, 355, 15, 15, 0, 2], ["Вена", 300, 273, 15, 15, 0, 3], ["Прага", 285, 251, 15, 15, 0, 4]]

я его загружаю через php в клип , и создаю там массив _root.towns , в котором должны быть загруженные данные:

Код:
onClipEvent (load) {
   loadVariables("link", this);
}
onClipEvent (data) {
_root.towns = new Array();
_root.towns = towns;
}
@st@l@vist@
участник
70
Сообщения: 1606
Зарегистрирован: 20.03.03
Откуда: St.Petersburg
Сообщение Добавлено: 21 Май 2005, 14:40:52 
Тогда, если нет желания или возможности менять строчку, что из базы берется, то все остальное так же …
Но кавычки нам не нужны, их тоже придется вырезать, как уже сказано выше. Все значения, что ты будешь иметь в массиве - будут строками, и "Рим" и "250" …

str = '"Hello"';
trace(str);
str = str.split('"').join("");
trace(str);
Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Сообщение Добавлено: 23 Май 2005, 19:59:33 
@st@l@vist@, Спасибо , не сразу , но я разобрался :cool: сделал массив таким "a,b,c,d|1,2,3,4|e,f,g,h" и код :

Код:
var list = towns.split("|");
   for (var i = 0; i<list.length; i++) {
      list[i] = list[i].split(",");
   }
   _root.towns = new Array();
   _root.towns = list;


дальше только поменять string на number и все.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 23 Май 2005, 20:58:28 
хотя лучше, конечно же, работать без делителей, чтобы без ограничений в значениях.

_________________
можно на ТЫ.
@st@l@vist@
участник
70
Сообщения: 1606
Зарегистрирован: 20.03.03
Откуда: St.Petersburg
Сообщение Добавлено: 24 Май 2005, 00:29:03 
bE(o0L, лучше всего вооообще не работать ;)

… а так, это ведь, решение для нашего конкретного случая :) Можно брать разделители вроде "~|~|~" :laugh:, пользоваться XML и прочее …
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 24 Май 2005, 02:13:51 
да я не настаиваю :)
оффтопик:
просто данные такого типа можно представить в ввиде:
row1_name=Rome
row1_population=25.000
row1_country=italy&
cобрать их как loadvars (в одну строчку с & )
и в самом флеше через малюсенький цикл создать этакий dump базы данных. дико удобно работать (мне по крайней мере) :laugh:

а xml честно говоря парит ибо занимает больше места.

_________________
можно на ТЫ.
Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Сообщение Добавлено: 24 Май 2005, 07:32:51 
оффтопик:
bE(o0L, я всегда так и делал, люди заносили данные в базу , а в этом случае это некому было делать ….
*   Список форумов / Технологии изображения / Flash « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 13 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100