Просмотр полной версии : разбор предложения и получения из строки набора переменных....
Доброе время суток...
Вопрос
имеем переменную полученную с сервера
Variables=123,345,fred,white
Как разбить ее так что бы поместить переменные следующим образом.
х=123
y= 345
Name = fred
color=white
передавать переменные в таким виде X=123&y=345&name=fred&color=white
не предлагать....
потому как не подходит в случает если Variables это массив таких переменных..
подскажите как сделать разбор строки...
x=[]
x=Variables.split(',')
УильямБрэдберри
20.05.2002, 14:20
2Lexass а зачем x=[]?
2PanCake, в твоем случае
x=Variables.split(',')[0]
y=Variables.split(',')[1]
Name =Variables.split(',')[2]
color=Variables.split(',')[3]
greyshaman
20.05.2002, 14:33
Насколько я понимаю Variables.split не прокатывает по причине неизвестной длинны полученного массива по этому можно вот так.
myArray="123,345,fred,white,43,5,fred,ellow ....";
i=0;
j=0;
newArray=new Array();
do{
if(myArray.charCodeAt(i)!=44){
newArray[j]+=myArray.substr(i,1)
}else{
// newArray[j]=parseInt(newArray[j],10);
j++;
}
i++;
}
while(i<=myArray.length);
for (i=0;i<newArray.length;i++){
trace(newArray[i]);
}
Но что делать если приходит строка следующего типа
Vehicle1=10,10,Object+1,1,NW,10&Vehicle2=50,170,Object+2,2,W,15
причем колличество переменных типа VehicleX может быть переменным...
НУ что же никто не знает как поступать в такиом случае??
Разяснения....
Допустим у нас имеется разное (известное серверу) колличество элементов... типа
variable=1,2,fred,white
строка посланная сервером может выглядеть так
VariablesNum=4&variable1=1,2,fred,white&variable2=1,2,fred,white&variable3=1,2,fred,white&variable4=1,2,fred,white
т.е мы получаем
сначала кооличество передданых пременных типа Variablex(x):
VariablesNum=4.
(заметте , что колличство значений переданных в переменной
Variablex(x) постоянно а именно 4 )
потом получаем поочереди все Variables(X)
в итоге мы имеем масиив масиивов переменных.
а именно
массив переменных Variables (x) в котором находится масиив значения x.Variables1=1, y.Variables1=2, name.Variables1=fred,
color.Variables1=white. и так далее...
Как все это запрограммировать....:)
2 УильямБрэдберри
1 для наглядности
2 ну нравиться мне делать обЪявлениЯ ;)
2 PanCake
1 повеситЬся :D ;)
2 неусложняй простое
3 что настолько может быть строка нестабильной?
Vehicle1=10,10,Object+1,1,NW,10&Vehicle2=50,170,Object+2,2,W,15
ЭТО
Vehicle1=10,10,Object+1,1,NW,10
Vehicle2=50,170,Object+2,2,W,15
Просто все это передается за один раз... и ничкуда от этоо не денешся....
может передаться одна Variables1=1,2,fred,white
а может 100
и что с ними делать???
как их разбирать?
x=[]
for(i=0;i<x;i++)
x[i]=this['Variables'+i].split(',')
____________________
Удач
не оптимально ...если строка не очень длинная, то можно так... я бы разложил по полочкам на сервере и принял готовые данные
2 asd
Оригинал написал(а) PanCake
... передавать переменные в таким виде X=123&y=345&name=fred&color=white
не предлагать....
ЗЫ
я бы тоже предпочел готовые данные ;)
хотя какая разница, гиммора на 5 сек. :cool: :D
все прально....но....если строка будет офигенной длины, то это будет парситься хрен знает скока - если не зависнет . любой скрипт на стороне сервера сформирует данные гораздо быстрее. Главное - все должно быть оправдано. Там наверно программер ленивый сидит - лень данные формировать....:-))
УильямБрэдберри
20.05.2002, 16:25
Это в 5-ке парсилось хрен знает сколько
в MX щас все летает...
Подготовить данные на строное сервера можно...
но клиентская сторона как узнает сколько перемнныйх к ней идет???
И как она их будет обрабатывать??
УильямБрэдберри
20.05.2002, 16:28
Оригинал написал(а) PanCake
Просто все это передается за один раз... и ничкуда от этоо не денешся....
может передаться одна Variables1=1,2,fred,white
а может 100
и что с ними делать???
как их разбирать?
ПОВТОРЮСЬ
2PanCake, в твоем случае
У тебя "Variables" стабильно 4 символа
вот ее и обработай
x=Variables.split(',')[0]
y=Variables.split(',')[1]
Name =Variables.split(',')[2]
color=Variables.split(',')[3]
УильямБрэдберри
20.05.2002, 16:37
Оригинал написал(а) PanCake
Подготовить данные на строное сервера можно...
но клиентская сторона как узнает сколько перемнныйх к ней идет???
И как она их будет обрабатывать??
хех
если не влом на сервере обработать, то какие траблы добавить одну переменную там же?
&allVariablesCount=coli4estvo_peremennix
а если не стабильно 4 символа?... а если какие изменения?... а что на сервере не указать кому че и сколько принадлежит?.... Не хочу спорить, это лично мое мнение - но я бы это делал на сервере. А МХ еще на стороне клиентов и заказчиков еще не имеет всеобщего признания.
УильямБрэдберри
20.05.2002, 16:51
Оригинал написал(а) asd
а что на сервере не указать кому че и сколько принадлежит?....
ну, дык а, я про что толкую?
Оригинал написал УильямБрэдберри
если не влом на сервере обработать, то какие траблы добавить одну переменную там же?
Всем спасибо
поробую сделать и так и так.....
А то ща ветка во FlAME превратится.:)
званяй Вилл - пока я постил ответ, твой пришел раньше...:-))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.