Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 758

/ вопрос решён /

Здравствуйте!
У меня маленький вопросик.
Есть некое cgi приложение. Через форму передаются параметры этому приложению ( например Myaap.cgi?ti=too&tot=rur)
как отделить Эти значения друг от друга?
Заранее спосибо =))

Елагин Сергей Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Елагин Сергей (статус: Посетитель)
Вопрос отправлен: 8 июля 2008, 16:26
Состояние вопроса: решён, ответов: 2.

Ответ #1. Отвечает эксперт: Матвеев Игорь Владимирович

Здравствуйте, Елагин Сергей!

procedure
var
  line,
  right  : string;
  params : TStringList;
begin
 line := <input>;
 params := TStringList.Create;
 Params.Delimiter := '=';
 //
 right := Copy(line, 1, Pos('?', line)-1);
 Delete(line, 1, Pos('?', line));
 //
 while Pos('&', line) > 0 do
   begin
     Params.Add( Copy(line, 1, Pos('&', line)-1) );
     Delete(line, 1, Pos('&', line));
   end;
 Params.Add( line );
 //
 // получение имени первого параметра и его значения
 ShowMessage(params.Names[0]+'  =  '+params.Values[params.Names[0]]);
end;

Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)
Время отправки: 8 июля 2008, 23:41
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Вадим К

Здравствуйте, Елагин Сергей!
Так как по вашему вопросу не совсем понятно, где именно вы застрягли и какие ещё вопросы появляться, почитайте для начала вот это.
Если нужно банально разбить стрку на параметры, то здесь всё просто. Пусть в s - готовый url

var sl:tstringList;
begin
s := copy(s, pos('?',s)+1, maxint);
 
sl := TStringList.create;
sl.delimeter := '&';
sl.delimetertext := s;
 
//а теперь можно уже использовать. например узнать значение параметра ti
sl.values['ti']; // это будет строка
sl.count //кол-во параметров
sl.names[1] ;//название 1 параметра
 
...
sl.free; //не забываем.
Но есть одна маленькая загогулина - некоторые символы в значениях параметрах будут заменены. это &<>'" С помощью replacestring можно всё восстановить.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 8 июля 2008, 23:47
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 8 июля 2008, 18:22; участников в обсуждении: 1.
Amidamaru

Amidamaru (статус: 4-ый класс), 8 июля 2008, 18:22 [#1]:

я немного не понял вопрос, можно по подробнее о том как эти значения вообще передаются? какие компоненты используешь и т.п.
Приглашаю Вас на наш IRC-канал: #delphiintru в сети DalNet.

31 января 2011, 19:31: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:35
Выполнено за 0.04 сек.