The OpenNET Project / Index page

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

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

"Конвертация string в char ?????"
Сообщение от AlexT emailИскать по авторуВ закладки on 28-Дек-02, 15:01  (MSK)
Первым делом поздравляю всех с наступающим!
Люди возникла такая проблема есть цикл:
while (is.get(ch)) //Читаем из файла
    {
     string a = "insert into ATSlog(log) values(\"";
     if ( ch != '\n' )//собираем строку....
      {               //пробовал getline
         str += ch;   //все то же самое
      }               //
       else
      {
         a += str;//собираем запрос
         a += c;  //----------
         char *ab = new char [a.size()];// выделяем место под массив char
         strcpy(ab, a.data()); //string в char ???
                               //
                               //

         if (mysql_query(&mysql,ab))
            {
              cout<<"Er1\n";
              exiterr(3);
            }
            str = "";
            delete[]  ab;
            a="";
        }
    }  
Суть в следующем: из файла постоянно читается информация,
потом она вставляется в mysql запрос, происходит это следующим образом
есть первая часть запроса к ней плюсуется информация из файла и плюс
третья часть которая закрывает запрос. Потом (т.к. этот запрос типа string ) все конвертируется в char "strcpy(ab, a.data()); ", вставляется в запрос и он идет на исполнение.
Проблема заключается в следующем: при первом прохождении цикла все проходит хорошо, запрос собирается и исполняется запись в базу тоже происходит, НО на втором проходе запрос НЕ собирается т.е. берется только первая его часть (хотя проверяли ... есть все части) а остальное каким то образом обрубается?!
Вопрос простой :) ПОЧЕМУ??? Ведь логично подумать если первый раз прошел то и второй пройдет.....или нет??!!    
Жду ваших советов и предложений...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Конвертация string в char ?????"
Сообщение от AlexT emailИскать по авторуВ закладки on 30-Дек-02, 09:26  (MSK)

>Жду ваших советов и предложений...

Что никто не знает? Или слушком простой вопрос что в лом ответить?
Я забыл сказать что данные идут с сом порта и уже выяснил что от туда проскакивает какой то символ (толи конец строки то ли еще что то) но вот какой? и как его обрубить?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Конвертация string в char ?????"
Сообщение от J Искать по авторуВ закладки on 30-Дек-02, 22:38  (MSK)
>
>>Жду ваших советов и предложений...
>
>Что никто не знает? Или слушком простой вопрос что в лом ответить?
>
>Я забыл сказать что данные идут с сом порта и уже выяснил
>что от туда проскакивает какой то символ (толи конец строки то
>ли еще что то) но вот какой? и как его обрубить?
>
могу сказать, что у меня mesql работал без проблем
но у меня был чиста С
может, везде syslog или printf натыкать?
скорее всего с буфером проблемы, но в С++ с отлавливанием ошибок проблемы

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Конвертация string в char ?????"
Сообщение от XMan Искать по авторуВ закладки on 31-Дек-02, 16:54  (MSK)
Незнаю, как насчет обрубания, но если "a.size()" - это аналог "strlen(char *)", то я бы в выделении памяти ставил "[a.size()+1]" всместо "[a.size()]", потому как последний нолик (ограничитель строки ASCII) вылезет за пределы твоего "char *ab". Возможно, в этом и проблема.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Конвертация string в char ?????"
Сообщение от AlexT Искать по авторуВ закладки on 03-Янв-03, 11:21  (MSK)
>Незнаю, как насчет обрубания, но если "a.size()" - это аналог "strlen(char *)",
>то я бы в выделении памяти ставил "[a.size()+1]" всместо "[a.size()]", потому
>как последний нолик (ограничитель строки ASCII) вылезет за пределы твоего "char
>*ab". Возможно, в этом и проблема.

Спасибо проблема уже решена :)
Надо было просто последние символы обрубать и '\n' и '\0'
они делали перевод строки и запрос не складывался :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: Конвертация string в char ?????"
Сообщение от Bizon Искать по авторуВ закладки on 08-Янв-03, 11:30  (MSK)
>>Незнаю, как насчет обрубания, но если "a.size()" - это аналог "strlen(char *)",
>>то я бы в выделении памяти ставил "[a.size()+1]" всместо "[a.size()]", потому
>>как последний нолик (ограничитель строки ASCII) вылезет за пределы твоего "char
>>*ab". Возможно, в этом и проблема.
>
>Спасибо проблема уже решена :)
>Надо было просто последние символы обрубать и '\n' и '\0'
>они делали перевод строки и запрос не складывался :)

странный код
а зачем тебе так необходимо из стринга char* делать??

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: Конвертация string в char ?????"
Сообщение от AlexT Искать по авторуВ закладки on 08-Янв-03, 18:12  (MSK)
>странный код
>а зачем тебе так необходимо из стринга char* делать??

это я собираю запрос для mysql в него надо вставлять данные а это
проще делать со строками, а конвертировать в чар надо т.к. запрос может быть тока  чар* остальное не проходит :(

Но на самом деле все уже сделано....  :)
И между прочим работает!


  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: Конвертация string в char ?????"
Сообщение от Bizon Искать по авторуВ закладки on 09-Янв-03, 11:22  (MSK)
>>странный код
>>а зачем тебе так необходимо из стринга char* делать??
>
>это я собираю запрос для mysql в него надо вставлять данные а
>это
>проще делать со строками, а конвертировать в чар надо т.к. запрос может
>быть тока  чар* остальное не проходит :(
>
>Но на самом деле все уже сделано....  :)
>И между прочим работает!


ну работать то работает но естетики ни какой:)
почему бы не сделать так:
mysql_query(&mysql,a.c_str()) ???
ну в крайнем случае mysql_query(&mysql,(char *)a.c_str())

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "RE: Конвертация string в char ?????"
Сообщение от AlexT Искать по авторуВ закладки on 12-Янв-03, 22:35  (MSK)
>ну работать то работает но естетики ни какой:)
>почему бы не сделать так:
>mysql_query(&mysql,a.c_str()) ???
>ну в крайнем случае mysql_query(&mysql,(char *)a.c_str())

спасибо попробую.
Просто я недавно тока начал писать и многое еще
приходиться выдумывать на ходу а потом уже если получится
приводить в божеский вид  :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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