idHTTP вытащить данные
От: Error202 https://zertex.ru
Дата: 13.04.07 10:36
Оценка:
Есть скрипт, который по запросу должен отдавать данные...
Запрос отсылает idHTTP и получает строку (ответ)
Мне нужно ее распарсить и раскидать по полям...

Не подскажите, как можно с меньшей кровью это сделать?

А то я заталкиваю строку в StringList и построчно вставляю, а если где-то в ответе текст был в две строки, то это все не работает...
Re: idHTTP вытащить данные
От: OdesitVadim Украина  
Дата: 13.04.07 10:41
Оценка:
Здравствуйте, Error202, Вы писали:

E>Есть скрипт, который по запросу должен отдавать данные...

E>Запрос отсылает idHTTP и получает строку (ответ)
E>Мне нужно ее распарсить и раскидать по полям...

E>Не подскажите, как можно с меньшей кровью это сделать?


E>А то я заталкиваю строку в StringList и построчно вставляю, а если где-то в ответе текст был в две строки, то это все не работает...

А можно регулярные выражения юзать. Хотя StringList Чудно работает. Ведь проверить что у нас две строки несложно...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: idHTTP вытащить данные
От: Error202 https://zertex.ru
Дата: 13.04.07 10:49
Оценка:
Здравствуйте, OdesitVadim, Вы писали:

OV>Здравствуйте, Error202, Вы писали:


E>>Есть скрипт, который по запросу должен отдавать данные...

E>>Запрос отсылает idHTTP и получает строку (ответ)
E>>Мне нужно ее распарсить и раскидать по полям...

E>>Не подскажите, как можно с меньшей кровью это сделать?


E>>А то я заталкиваю строку в StringList и построчно вставляю, а если где-то в ответе текст был в две строки, то это все не работает...

OV>А можно регулярные выражения юзать. Хотя StringList Чудно работает. Ведь проверить что у нас две строки несложно...

В том и загвоздка, что сложно...


просто скрипт выдает, например, в таком формате:
----- cut -----
текст для поля 1
текст для поля 2
текст для поля 3
текст для поля 3
текст для поля 3
текст для поля 4
----- cut -----

В приложение попадает это все как одна строка разбитая chr(13)
Вот как бы мне лучше сделать механизм, чтобы приложение могло определить, что в то полу, что в другое, что в третье...?
Re[3]: idHTTP вытащить данные
От: OdesitVadim Украина  
Дата: 13.04.07 10:57
Оценка:
Здравствуйте, Error202, Вы писали:
[scip]

E>В том и загвоздка, что сложно...

мда

E>просто скрипт выдает, например, в таком формате:

E>----- cut -----
E>текст для поля 1
E>текст для поля 2
E>текст для поля 3
E>текст для поля 3
E>текст для поля 3
E>текст для поля 4
E>----- cut -----

E>В приложение попадает это все как одна строка разбитая chr(13)

E>Вот как бы мне лучше сделать механизм, чтобы приложение могло определить, что в то полу, что в другое, что в третье...?
ну так
sl:TStringList;

...

sl.delimeter:=#13;
sl.delimetertext:='text'#13'text2'

всё, теперь данные будут разбиты по строкам.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: idHTTP вытащить данные
От: Error202 https://zertex.ru
Дата: 13.04.07 11:03
Оценка:
Здравствуйте, OdesitVadim, Вы писали:

OV>Здравствуйте, Error202, Вы писали:

OV>[scip]

E>>В том и загвоздка, что сложно...

OV>мда

E>>просто скрипт выдает, например, в таком формате:

E>>----- cut -----
E>>текст для поля 1
E>>текст для поля 2
E>>текст для поля 3
E>>текст для поля 3
E>>текст для поля 3
E>>текст для поля 4
E>>----- cut -----

E>>В приложение попадает это все как одна строка разбитая chr(13)

E>>Вот как бы мне лучше сделать механизм, чтобы приложение могло определить, что в то полу, что в другое, что в третье...?
OV>ну так
OV>
OV>sl:TStringList;

OV>...

OV>sl.delimeter:=#13;
OV>sl.delimetertext:='text'#13'text2'
OV>

OV>всё, теперь данные будут разбиты по строкам.

Да по строкам я разбить могу
Посмотрите пример CUT, по нему на форме есть 4 мемо поля...
Нужно в соответствии номерам раскидать текст...
Т.е. обычное разбиение по строкам не катит, т.к. в 4 мемо влезет только первые 4 строки...
А мне надо так:
мемо1 = 1
мемо2 = 2
мемо3 = 333
мемо4 = 4
Re[5]: idHTTP вытащить данные
От: OdesitVadim Украина  
Дата: 13.04.07 11:12
Оценка:
Здравствуйте, Error202, Вы писали:
OV>>[scip]

E>Да по строкам я разбить могу

E>Посмотрите пример CUT, по нему на форме есть 4 мемо поля...
E>Нужно в соответствии номерам раскидать текст...
E>Т.е. обычное разбиение по строкам не катит, т.к. в 4 мемо влезет только первые 4 строки...
E>А мне надо так:
E>мемо1 = 1
E>мемо2 = 2
E>мемо3 = 333
E>мемо4 = 4

А по понятнее можно? Что то я не понимаю ничего.
E>Т.е. обычное разбиение по строкам не катит, т.к. в 4 мемо влезет только первые 4 строки...
а как разивать надо...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: idHTTP вытащить данные
От: Error202 https://zertex.ru
Дата: 13.04.07 11:21
Оценка:
Здравствуйте, OdesitVadim, Вы писали:

OV>Здравствуйте, Error202, Вы писали:

OV>>>[scip]

E>>Да по строкам я разбить могу

E>>Посмотрите пример CUT, по нему на форме есть 4 мемо поля...
E>>Нужно в соответствии номерам раскидать текст...
E>>Т.е. обычное разбиение по строкам не катит, т.к. в 4 мемо влезет только первые 4 строки...
E>>А мне надо так:
E>>мемо1 = 1
E>>мемо2 = 2
E>>мемо3 = 333
E>>мемо4 = 4

OV>А по понятнее можно? Что то я не понимаю ничего.

E>>Т.е. обычное разбиение по строкам не катит, т.к. в 4 мемо влезет только первые 4 строки...
OV>а как разивать надо...

Ну просто мне нужно вытащить 4 значения из скрипта, а как их передать правильно — вопрос...
т.к. одно значение может на несколько строк растянуться...

Но спасибо! Я через регулярные выражения сделал...
Re[7]: idHTTP вытащить данные
От: OdesitVadim Украина  
Дата: 13.04.07 11:29
Оценка: 3 (1)
Здравствуйте, Error202, Вы писали:

OV>>>>[scip]


E>Ну просто мне нужно вытащить 4 значения из скрипта, а как их передать правильно — вопрос...

E>т.к. одно значение может на несколько строк растянуться...
Так сразу в примере писать надо было
типа так
test1=111
test2=333
3333
3
test4=4444
ну так кто мешал использовать кодирование строки? тоесть заменяя проблел на %20, перевод строки на %13 и так дальше. Или на крайний случай, просто перевод строки заменить на ||
E>Но спасибо! Я через регулярные выражения сделал...
Ну хоть как то.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.