Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конкатенация строк 
:(
    Опции темы
Reptor
Дата 25.9.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



я что то не могу понять в чём дело... пробовал уже по разному... собственно вот в чём проблема: 

в базу данных мне надо записать поле типа datetime -и для этого я пользуюсь что б получить полную дату структурой

Код

    SYSTEMTIME sm;
        GetSystemTime(&sm);
        cout << sm.wYear <<  endl;
        cout << sm.wMonth <<  endl;
        cout << sm.wDay <<  endl;
        cout << sm.wHour <<  endl;
        cout << sm.wMinute <<  endl;
        cout << sm.wSecond <<  endl;


потом мне всё это надо переделать как то в строку что б подставить в запрос и записать 

Код

if (mysql_query(&mysql,"INSERT INTO tsignal SET color_signal = 0, time = /*вот тут как то надо вставить это время*/")) 


но у меня не выходит информацию со структуры перевести в строку... как это сделать? надо получить 2008-09-25 12:34:12 ну как пример





PM MAIL ICQ   Вверх
Maka6er
Дата 25.9.2008, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 27.2.2007
Где: Киев

Репутация: 1
Всего: 3



Можно через sprintf:
Код

int i = 7;
char *c = "Hello ";
char *s = (char *) malloc(strlen(c)+1+1);
sprintf(s, "%s%d", c, i);

А дальше поэлементно занести данные из структуры в строку и записать в базу. Только надо следить за выделяемой памятью.

Это сообщение отредактировал(а) Maka6er - 25.9.2008, 12:54
PM MAIL   Вверх
mrbrooks
Дата 25.9.2008, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



если нужно время перевести в строку можно воспользоваться услугами заголовочника time.h
Код

time_t t; 
tm t_m;   //структура аналогичная SYSTEMTIME 
time(&t);
localtime(&t_m,&t);
char buf[100];
asctime_s(buf,100,&t_m);
std::cout << buf << std::endl;



PM MAIL   Вверх
bsa
Дата 25.9.2008, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Код
std::string getSystemTimeStr()
{
        SYSTEMTIME sm;
        GetSystemTime(&sm);
        std::ostringstream stream;
        stream << sm.wYear <<  '-' << sm.wMonth <<  '-' << sm.wDay <<  ' ';
        stream << sm.wHour <<  ':' << sm.wMinute <<  ':' << sm.wSecond;
        return stream.str();
}

PM   Вверх
Lazin
Дата 25.9.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



Код

#include <boost/date_time/posix_time/posix_time.hpp>

std::string getSystemTimeStr()
{
    return to_simple_string(  boost::posix_time::second_clock::local_time()  );
}


PM MAIL Skype GTalk   Вверх
Reptor
Дата 25.9.2008, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



ого столько решений разных. Спасибо

Добавлено через 12 минут и 18 секунд
Воспользовался примером bsa, и вот такая ошибка
local function definitions are illegal

PM MAIL ICQ   Вверх
J0ker
Дата 25.9.2008, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(Reptor @  25.9.2008,  16:20 Найти цитируемый пост)
local function definitions are illegal

очень информативно....
может быть строку хоя-бы запостишь с ошибкой?
могу предположить что гдето в функции написано что-то вроде:
Код

typename blahblahblah();

это - function definition - объявление функции с именем blahblahblah возвращающей typename
надо:
Код

typename blahblahblah;

тогда это будет объявлением переменной типа typename с именем blahblahblah


--------------------
user posted image
PM MAIL   Вверх
Reptor
Дата 26.9.2008, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



J0ker,  я брал вот этот пример

Код

std::string getSystemTimeStr()
{
        SYSTEMTIME sm;
        GetSystemTime(&sm);
        std::ostringstream stream;
        stream << sm.wYear <<  '-' << sm.wMonth <<  '-' << sm.wDay <<  ' ';
        stream << sm.wHour <<  ':' << sm.wMinute <<  ':' << sm.wSecond;
        return stream.str();
}


 Я вставил это к себе в 

Код

void CALLBACK TimerProc(
                        HWND hWnd,      
                        UINT nMsg,     
                        UINT nIDEvent,  
                        DWORD dwTime)  
{

   
        //SYSTEMTIME sm;
        //GetSystemTime(&sm);    
                     

       std::string getSystemTimeStr()  // вот тут ошибка
       {
        SYSTEMTIME sm;
        GetSystemTime(&sm);
        std::ostringstream stream;
        stream << sm.wYear <<  '-' << sm.wMonth <<  '-' << sm.wDay <<  ' ';
        stream << sm.wHour <<  ':' << sm.wMinute <<  ':' << sm.wSecond;
        return stream.str();
}
....

                   
                   
}



и ругается на строчку.

error C2601: 'getSystemTimeStr' : local function definitions are illegal


PM MAIL ICQ   Вверх
mrbrooks
Дата 26.9.2008, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



хм. однако. smile 
Код

std::string getSystemTimeStr()  
{
SYSTEMTIME sm;
GetSystemTime(&sm);
std::ostringstream stream;
stream << sm.wYear <<  '-' << sm.wMonth <<  '-' << sm.wDay <<  ' ';
stream << sm.wHour <<  ':' << sm.wMinute <<  ':' << sm.wSecond;
return stream.str();
}
void CALLBACK TimerProc(HWND hWnd,  UINT nMsg,   UINT nIDEvent,   DWORD dwTime)                                                   
{ 
std::string str;                    
str = getSystemTimeStr(); 
}


Это сообщение отредактировал(а) mrbrooks - 26.9.2008, 10:45
PM MAIL   Вверх
J0ker
Дата 26.9.2008, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(Reptor @  26.9.2008,  10:35 Найти цитируемый пост)
error C2601: 'getSystemTimeStr' : local function definitions are illegal

ну так а чего ты хочешь? ты объявляешь getSystemTimeStr() внутри TimerProc() - о чем компилятор тебе радостно и сообщает


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0813 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.