PDA

Просмотр полной версии : разбор предложения и получения из строки набора переменных....


PanCake
20.05.2002, 13:47
Доброе время суток...

Вопрос
имеем переменную полученную с сервера

Variables=123,345,fred,white

Как разбить ее так что бы поместить переменные следующим образом.

х=123
y= 345
Name = fred
color=white

передавать переменные в таким виде X=123&y=345&name=fred&color=white
не предлагать....
потому как не подходит в случает если Variables это массив таких переменных..
подскажите как сделать разбор строки...

lexass
20.05.2002, 13:52
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]);
}

PanCake
20.05.2002, 14:41
Но что делать если приходит строка следующего типа

Vehicle1=10,10,Object+1,1,NW,10&Vehicle2=50,170,Object+2,2,W,15
причем колличество переменных типа VehicleX может быть переменным...

PanCake
20.05.2002, 15:27
НУ что же никто не знает как поступать в такиом случае??

Разяснения....
Допустим у нас имеется разное (известное серверу) колличество элементов... типа

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. и так далее...

Как все это запрограммировать....:)

lexass
20.05.2002, 15:29
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

PanCake
20.05.2002, 15:31
Просто все это передается за один раз... и ничкуда от этоо не денешся....
может передаться одна Variables1=1,2,fred,white
а может 100
и что с ними делать???
как их разбирать?

lexass
20.05.2002, 15:34
x=[]
for(i=0;i<x;i++)
x[i]=this['Variables'+i].split(',')
____________________
Удач

asd
20.05.2002, 15:51
не оптимально ...если строка не очень длинная, то можно так... я бы разложил по полочкам на сервере и принял готовые данные

lexass
20.05.2002, 15:56
2 asd

Оригинал написал(а) PanCake
... передавать переменные в таким виде X=123&y=345&name=fred&color=white
не предлагать....

ЗЫ
я бы тоже предпочел готовые данные ;)
хотя какая разница, гиммора на 5 сек. :cool: :D

asd
20.05.2002, 16:12
все прально....но....если строка будет офигенной длины, то это будет парситься хрен знает скока - если не зависнет . любой скрипт на стороне сервера сформирует данные гораздо быстрее. Главное - все должно быть оправдано. Там наверно программер ленивый сидит - лень данные формировать....:-))

УильямБрэдберри
20.05.2002, 16:25
Это в 5-ке парсилось хрен знает сколько

в MX щас все летает...

PanCake
20.05.2002, 16:28
Подготовить данные на строное сервера можно...
но клиентская сторона как узнает сколько перемнныйх к ней идет???
И как она их будет обрабатывать??

УильямБрэдберри
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

asd
20.05.2002, 16:39
а если не стабильно 4 символа?... а если какие изменения?... а что на сервере не указать кому че и сколько принадлежит?.... Не хочу спорить, это лично мое мнение - но я бы это делал на сервере. А МХ еще на стороне клиентов и заказчиков еще не имеет всеобщего признания.

УильямБрэдберри
20.05.2002, 16:51
Оригинал написал(а) asd
а что на сервере не указать кому че и сколько принадлежит?....

ну, дык а, я про что толкую?

Оригинал написал УильямБрэдберри


если не влом на сервере обработать, то какие траблы добавить одну переменную там же?

PanCake
20.05.2002, 16:53
Всем спасибо
поробую сделать и так и так.....
А то ща ветка во FlAME превратится.:)

asd
20.05.2002, 17:37
званяй Вилл - пока я постил ответ, твой пришел раньше...:-))