ВУЗ:
Составители:
Рубрика:
- 21 -
void DecodeStr(char *sString)
{ int src, dst;
char ch;
for(src=0,dst=0; sString[src]; src++,dst++) // цикл по строке
{
ch = sString[src]; // получаем очередной символ перекодируемой строки
ch = (ch == '+') ? ' ' : ch; // заменяем символ ‘+’ на пробел
sString[dst] = ch; // сохраняем результат
// обработка шестнадцатеричных кодов вида %хх
if(ch == '%')
{
sString[dst] = DecodeHex(&sString[src + 1]); // преобразуем %00 в код символа
src += 2;
} // конец IF ch…
} // конец FOR src…
sString[dst] = '\0'; // закрываем строку нулем
} // конец функции DecodeStr
//----------------------------------------------------------------------------
// функция DecodeHex - раскодирование строки %хх
//
char DecodeHex(char *str)
{ char ch;
// обрабатываем старший разряд
if(str[0] >= 'A') // здесь и далее 'А' - латиница !!!
ch = ((str[0] & 0xdf) - 'A') + 10;
else
ch = str[0] - '0';
ch <<= 4; // сдвигаем его влево на 4 бита
if(str[1] >= 'A') // oбрабатываем младший разряд и складываем его со старшим
ch += ((str[1] & 0xdf) - 'A') + 10;
else
ch += str[1] - '0';
return (ch); // возвращаем результат перекодировки
} // конец функции DecodeHex
//----------------------------------------------------------------------------
Компонентная С-функция MainFormCreate создана с помощью Ob-
ject Inspector’а как вызываемая при событии
MainFormCreate (создание един-
ственной в приложении формы MainForm), при этом в управляющем файле
CGI_CPP.CPP строка
Application->Run(); закомментирована (CGI-приложение
не требует окна). Функции
DecodeStr и DecodeHex служат для (вышеописан-
ного) декодирования символов в получаемой от броузера строке.
void DecodeStr(char *sString)
{ int src, dst;
char ch;
for(src=0,dst=0; sString[src]; src++,dst++) // цикл по строке
{
ch = sString[src]; // получаем очередной символ перекодируемой строки
ch = (ch == '+') ? ' ' : ch; // заменяем символ ‘+’ на пробел
sString[dst] = ch; // сохраняем результат
// обработка шестнадцатеричных кодов вида %хх
if(ch == '%')
{
sString[dst] = DecodeHex(&sString[src + 1]); // преобразуем %00 в код символа
src += 2;
} // конец IF ch…
} // конец FOR src…
sString[dst] = '\0'; // закрываем строку нулем
} // конец функции DecodeStr
//----------------------------------------------------------------------------
// функция DecodeHex - раскодирование строки %хх
//
char DecodeHex(char *str)
{ char ch;
// обрабатываем старший разряд
if(str[0] >= 'A') // здесь и далее 'А' - латиница !!!
ch = ((str[0] & 0xdf) - 'A') + 10;
else
ch = str[0] - '0';
ch <<= 4; // сдвигаем его влево на 4 бита
if(str[1] >= 'A') // oбрабатываем младший разряд и складываем его со старшим
ch += ((str[1] & 0xdf) - 'A') + 10;
else
ch += str[1] - '0';
return (ch); // возвращаем результат перекодировки
} // конец функции DecodeHex
//----------------------------------------------------------------------------
Компонентная С-функция MainFormCreate создана с помощью Ob-
ject Inspector’а как вызываемая при событии MainFormCreate (создание един-
ственной в приложении формы MainForm), при этом в управляющем файле
CGI_CPP.CPP строка Application->Run(); закомментирована (CGI-приложение
не требует окна). Функции DecodeStr и DecodeHex служат для (вышеописан-
ного) декодирования символов в получаемой от броузера строке.
- 21 -
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »
