ВУЗ:
Составители:
Рубрика:
- 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
- …
- следующая ›
- последняя »