Вопрос № 22003:
Здравствуйте Эксперты, хотелось бы узнать :
у меня есть : AnsiString VALUE= "THIS IS TEST VALUE";
как сделать чтобы VALUE было = "THIS%20IS%20SET%20VALUE";
То есть не самому написать , т.к. переменная не постоянна...
Вопрос № 22.003
Здравствуйте Эксперты, хотелось бы узнать :
у меня есть : AnsiString VALUE= "THIS IS TEST VALUE";
как сделать чтобы VALUE было = "THIS%20IS%20SET%20VALUE";
То есть не самому написать , т.к. переменная не постоянна , а чтобы программа сама обрабатывала переменную
Заранее огромное спасибо
Отправлен: 10.06.2005, 08:01
Вопрос задал: ДимооН :) (статус: 1-ый класс)
Всего ответов отправлено: 3
Отвечает: Jadd
Здравствуйте, ДимооН :)!
Ты, паразит, поставил мне прошлый раз 2-ку не знама за что. Хоть бы спасибо сказал, что я тебе на твои ошибки указал и объяснил :<. Ну ладно, время линчевания прошло. Теперь по существу. Берешь свою строку. И в цикле обрабатываешь на нахождение пробелов:
AnsiString strValue; //инициализацию пропустим будем считать, что строка заполнена каким-то значением
//дальше берем символ по индексу
for (int i=0; i < strValue.Length(); i++)
{
if (strValue[i] == " ")
{
strValue[i] = "%20";
}
}
вот и все.
--------- Hakuna matata
Ответ отправил: Jadd (статус: 9-ый класс)
Отправлен: 10.06.2005, 10:10 Оценка за ответ: 5 Комментарий оценки: Оки , благодарю.... Про двойку... мыло не всегда я снимаю извини )) Вот тебе Пятак ))
Отвечает: Rusland
Здравствуйте, ДимооН :)!
Если тебе необходима строка понятная для браузера, то в CBuilder-е есть библиотека httpapp (в проект просто нужно подключить #include <httpapp.hpp>), в которой реализованы функции HTTPEncode и HTTPDecode. Они позволяют осуществлять такой перевод в обе стороны.
Удачи.
Приложение:
Ответ отправил: Rusland (статус: 5-ый класс)
Отправлен: 10.06.2005, 10:57
Отвечает: yatagan
Здравствуйте, ДимооН :)!
я не знаю шо такое AnsiString ... наверно строка какая-то навороченая... но это от лукавого -- надо пользоваться стандартной библиотекой STL. там есть тип, описывающий строку - string называется. никакой CString с ним не сравнится......
да, так вот.... в общем задача однозначного решения не имеет, вот как я себе это представляю:
#include <string>
#include <iostream>
using namespace std;
//ф-ция замены
void replace(string &str)
{
//длина строки
int length = str.length();
for (int i = 0; i < length; i++)
if (str[i] == ' ') //если пробел, то
{
//удаляем пробел
str.erase(i, 1);
//вставлям то шо надо
str.insert(i, "%20");
}
}
main()
{
string str = "THIS IS TEST VALUE";
cout << str << endl;
replace(str);
cout << str << endl;
}
вроде работает - если шо не ясно - спрашивай...
--------- Україна понад усе!
Ответ отправил: yatagan (статус: 1-ый класс)
Отправлен: 10.06.2005, 15:32 Оценка за ответ: 4 Комментарий оценки: ясно всё , но я уже получил более Хороший ответ ) Спасибо )) Четыре тебе )