The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"анализ строки "
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"анализ строки "  
Сообщение от greenetc (ok) on 24-Янв-06, 15:13 
Программка на Си , требуется в строке , все символы одинарной кавычка '  - найти и заменить на такие же кавычки в количестве двух штук , то есть из , например , O'neil O'hara.mp3 , сделать - O''neil O''hara.mp3 . Поясню - это требуется для синтаксиса запросов mysql.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "анализ строки "  
Сообщение от Hordi email on 24-Янв-06, 16:12 
Исходящий буфер должен быть в 2 раза больше входящего. length - размер исходящего
size_t escapeString(char *to, const char *from, size_t length)
{
const char *source = from;
char    *target = to;

while(length > 0 && *source != '\0'){
switch (*source){
case '\\':
*target++ = '\\';
*target++ = '\\';
break;

case '\'':
*target++ = '\'';
*target++ = '\'';
break;

default:
*target++ = *source;
break;
}
++source;
--length;
}

*target = '\0';

return target - to;
}

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "анализ строки "  
Сообщение от dimus (??) on 25-Янв-06, 07:24 
>Исходящий буфер должен быть в 2 раза больше входящего....
Не обязательно. Возможно также сэкономить память, проводя сначала анализ строки на предмет выявления заменяемых символов. Если, допустим, нам надо заменить 2 кавычки, то нам потребуется буфер размером на 2 символа больше, чем исходный.
Недостатки метода:
1. На два прохода требуется больше времени, чем на один
2. Трудности с анализом фрагментов - это если исходный буфер содержит не всю строку
Достоинства:
1. Существенная экономия памяти. Если кавычек нет - вообще ничего не надо делать.
2. В первом проходе можно проводить анализ строки на предмет ошибок и второй проход может вообще не понадобиться.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "анализ строки "  
Сообщение от _Brick_ email(ok) on 24-Янв-06, 18:27 
А чем не угодила mysql_real_escape_string?

http://dev.mysql.com/doc/refman/4.0/ru/mysql-real-escape-string.html

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "анализ строки "  
Сообщение от greenetc (ok) on 01-Фев-06, 14:53 
>А чем не угодила mysql_real_escape_string?
>
>http://dev.mysql.com/doc/refman/4.0/ru/mysql-real-escape-string.html


не угодила, потому как не понимает всё равно .... даже если после обработки mysql_real_ecape_string, пишет что ошибка синтаксиса.

может кто подскажет ... где то в форуме в видел что в пятом мускуле нет проблем скавычками и всяким другим .... подскажите как это делается в пятом .

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру