Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

Открыть новую тему     Написать ответ в эту тему

Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопросы по программированию на C/С++

 
  • Справочники, книги
  • Выбор IDE (среды программирования)
     
    Постарайтесь дать как можно больше информации о возникшей проблеме - это в конце концов в ваших же интересах чтобы вам помогли.

    Решения конкретных задач собираются и обсуждаются в теме Задачи по C/С++ .

    Прежде чем просить помощи в задании...
    Если позарез надо и вы даже готовы заплатить

    Как правильно задавать вопросы, если вы хотите получить ответ.

    Полезные ссылки:
    C++(eng)

  • Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 13:37 06-05-2004 | Исправлено: AZJIO, 19:45 12-05-2014
    distance

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FerzCH
     
    typedef struct {
       double x, y, z;
    } TPoint;
     
    при такой записи в Си создаётся анонимная структура и одновременно определяется новый тип данных.
    для c++ это ненужная операция, достаточно просто:
    struct TPoint { ... };
     

    Цитата:
    Где искать ошибку?

    вот здесь:
    typedef struct Tline TPoint;

    Всего записей: 878 | Зарегистр. 28-03-2004 | Отправлено: 23:11 26-02-2008
    FerzCH

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    distance
    Заменила  
    typedef struct { double x, y, z;} TPoint;  
    на
    struct TPoint{double x, y, z;};  
     
    выдает ошибку:
    redefinition of 'struct TPoint'
    previous definition of 'struct TPoint'

    Всего записей: 56 | Зарегистр. 26-05-2004 | Отправлено: 23:55 26-02-2008
    Antananarivu

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
     

    Всего записей: 151 | Зарегистр. 10-10-2006 | Отправлено: 15:20 29-02-2008 | Исправлено: Antananarivu, 17:23 29-02-2008
    sash29

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    всем привет может кто встречал где нибудь такую тему - есть 500 абонентов(условно) нужно всем отправить одну СМСку из компа через мобилку(не через Call Center где задержка может быть от 2мин. - до 3часов а именно как СМС из мобильника на мобильник) - кто что сможет подсказать, или хотябы где искать и что. сам работаю с С++не профи, но что то писать могу... или на адрес sash29@ukr.net
     
     если кто что  подскажет - зараннее большое спасибо...  

    Всего записей: 38 | Зарегистр. 18-09-2004 | Отправлено: 19:56 02-03-2008
    Antananarivu

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
    Проблема такая.  
    Отработала программа, получил кучу данных, по старинке делаю fprintf в файл, рисую вручную таблички. В общем, трачу впустую время. Гораздо эстетичнее, да и практичнее, было бы экспортировать полученные данные в Excel и уже оттуда печатать нормальные таблицы, а может быть даже сразу получать графики, гистограммы и прочее.  
    Вопрос самый общий: где об этом можно почитать? Как это реализовать?  
    Заранее огромное спасибо!

    Всего записей: 151 | Зарегистр. 10-10-2006 | Отправлено: 10:58 06-03-2008
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Antananarivu

    Цитата:
    по старинке делаю fprintf в файл

    самое простое, чтобы сделал я в первую очередь, -- это писал бы той же fprintf() все значения через запятую, и выходной файл обозвал бы "мой_файл_что-то_там.csv"
    вообще одним кликом вгоняется в Ексель...

    Всего записей: 24115 | Зарегистр. 06-12-2002 | Отправлено: 12:57 06-03-2008
    Antananarivu

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    akaGM
    Спасибо!
    С одной стороны это удобно! Но.. в то же время, открывая затем этот файл в Екселе, вижу что еще полчаса придется потратить на форматирование. Целые числа выравнены по левому краю, остальные по правому, столбцы надо потом вручную выравнивать по ширине и т.д
    Нет какого-нибудь метода, как всего этого избежать?

    Всего записей: 151 | Зарегистр. 10-10-2006 | Отправлено: 14:31 06-03-2008
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Antananarivu
    ну не знаю...
    попробуй в fprintf-e c "%-d %-g" поиграть...
     
    в Екселе же это только для тебя на экране так представлено,
    что ты дальше с ними будешь делать от тебя и зависит...
    я вообще Ексель не знаю...
    сторонных библиотек для форматного импорта/экспорта до чёрта всяких-разных
    если ты на Билдере сидишь, то глянь, например, вот на это:
     
    http://www.sqlmanager.net/   adv data export/import

    Всего записей: 24115 | Зарегистр. 06-12-2002 | Отправлено: 14:53 06-03-2008
    Antananarivu

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да нет, я как раз на Visual C++ сижу.  
    Лазил по нету, находил либо длинные статьи, либо инструкции для билдера. А разбираться особенно времени нет.
    Было бы круто найти где-нибудь алгоритм прямой записи переменной в ячейку xls файла, также возможность средствами C++ поиграть с выравниванием, размером шрифта, заливкой, обрамлением и т.д. и т.п.  
    Скажем небольшой кусочек кода, который бы:
    а) занес переменную x в ячейку А1 созданного файла А1.xls.
    б) выровнял бы содержимое ячейки по левому краю.
    в) сделал бы автоподбор ширины столбца.
    г) нарисовал бы границу этой ячейки.
    д) увеличил бы шрифт до 14
    Visual C++ 6.0, 2003 офис.
    Если бы кто-то написал кусочек такого кода, дальше,надеюсь, я бы и сам разобрался.
    Заранее спасибо.
    P.S. И не подумайте что я с жиру бешусь, просто тот человек который будет этой программой пользоваться, кроме как открыть Excel и ткнуть на печать не умеет больше НИЧЕГО! Поэтому мне и надо, чтобы после отработки программы, был сформированный Excel файл со всем нужным форматированием.

    Всего записей: 151 | Зарегистр. 10-10-2006 | Отправлено: 15:03 06-03-2008 | Исправлено: Antananarivu, 15:23 06-03-2008
    KChernov



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Antananarivu
    А чем OLE Automation не подходит?
     
    Вот навскидку поиск по "ole automation c++" на Яндексе.
    Во второй строчке есть ссылка на статью в ВиКи - http://en.wikipedia.org/wiki/OLE_Automation .
     
    Ну а примеров на других языках на эту темы можно найти ну очень много (в том числе и для екселя) - всякие wsh-скрипты, например.

    Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 11:20 07-03-2008
    Antananarivu

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В продолжение вопроса о работе с Экселем из под С++:
    Изучаю COM-объекты.
    Получилось создать график, но вот с подписями осей ничего не выходит.
    Код:

    Код:
     
    RangePtr pRange = sheet->Range["A2:C8"];
    _ChartPtr  pChart = book->Charts->Add();
    pChart->ChartWizard((Range*) pRange, (long) xl3DColumn , 4L, (long) xlColumns, 1L, 0L, 1L, "График");
    ??? pChart->Axes(xlValue, xlPrimary)->HasTitle[0] = true;
    ??? pChart->Axes(xlValue, xlPrimary)->AxisTitle->Characters->Text = "Подпись оси"
     

    Первые строчки проходят прекрасно: создается нужный мне график, но вот там где начинается код, создающий подписи для осей графика компилятор выдает такую ошибку: "HasTitle" is not a member of "IDispatch".
    Знающие люди, помогите, пожалуйста.

    Всего записей: 151 | Зарегистр. 10-10-2006 | Отправлено: 16:02 14-03-2008 | Исправлено: Antananarivu, 16:04 14-03-2008
    terminat0r



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Antananarivu
    Бери Эксель, запускай запись макроса, строй свой график.
    Потом смотри макрос, и делай реализацию.  
    Или запиши макрос в файл а с программы просто запускай с помощью оле свой макрос.
    Иерархию в экселе тоже очень удобно смотреть в редакторе макросов. Там все есть.

    Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 16:52 14-03-2008
    Antananarivu

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Так я так и делал, брал код из VBA и творчески переделывал его в Visual С++, но вот с этим делом разобраться не смог.  
    Так что прошу помочь, именно с теми 2 строками, которые отмечены ???

    Всего записей: 151 | Зарегистр. 10-10-2006 | Отправлено: 16:55 14-03-2008 | Исправлено: Antananarivu, 16:57 14-03-2008
    Antananarivu

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Так.. посмотрел повнимательнее, почитал кое где, это делается как-то через Invoke. То есть видимо, должно быть как-то  

    Код:
     
    pChart->Axes(xlValue, xlPrimary)->Invoke... и что-то еще
     

    Жду помощи.

    Всего записей: 151 | Зарегистр. 10-10-2006 | Отправлено: 23:46 14-03-2008
    Talkman

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А почему не срабатывает casting: unsigned
    в данном случае:
     

    Код:
     
     
    #include <stdio.h>
     
    int main(int argc, char *argv[])
    {
      int a = -100,b;
      b = (unsigned)a;
      printf("%d", b);
      getchar();
      return 0;
    }
     
     

    Всего записей: 322 | Зарегистр. 28-04-2002 | Отправлено: 16:18 16-03-2008
    DW



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Talkman
     
    я думаю, что casting срабатывает два раза в этом случае. Один раз явно, "(unsigned)a", а второй раз неявно, когда просиходит присваение к b, т.к b это не unsigned,a int.

    Всего записей: 220 | Зарегистр. 03-05-2002 | Отправлено: 22:56 16-03-2008
    c0d3r



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    А почему не срабатывает casting: unsigned  

     
    В printf() используйте %u, вместо %d.

    Всего записей: 132 | Зарегистр. 24-08-2004 | Отправлено: 08:00 17-03-2008 | Исправлено: c0d3r, 08:01 17-03-2008
    Antananarivu

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Последняя попытка...  
    Как я уже говорил выше, такие действия как редактирование легенды или осей координат осуществляются при помощи функции Invoke. Я нашел как реализован вывод легенды:

    Код:
     
    IDispatchPtr pDisp = pChart->SeriesCollection(_variant_t((long)1L));
    HRESULT hr;
    DISPID dispid;
    OLECHAR* szMember = OLESTR("Name");
    hr = pDisp->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_USER_DEFAULT, &dispid);
    if(SUCCEEDED(hr))
    {
                    VARIANT varg[1];
        varg[0].vt = VT_BSTR;
        varg[0].bstrVal = _bstr_t(OLESTR("=\"График 1  \""));
        DISPID dispidPut = DISPID_PROPERTYPUT;    
        DISPPARAMS dp;
        dp.cArgs = 1;
        dp.rgvarg = varg;
        dp.rgdispidNamedArgs = &dispidPut;  
        dp.cNamedArgs = 1;
                    hr = pDisp->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT,DISPATCH_PROPERTYPUT,&dp, NULL, NULL, NULL);
    }
     

    По образу и подобию, я создал надпись графика оси Х:

    Код:
     
    IDispatchPtr pDisp = pChart->SeriesCollection(_variant_t((long)1L));
    HRESULT hr;
    DISPID dispid;
    OLECHAR* szMember = OLESTR("XValues");
    hr = pDisp->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_USER_DEFAULT, &dispid);
    if(SUCCEEDED(hr))
    {
        VARIANT varg[1];
        varg[0].vt = VT_BSTR;
        varg[0].bstrVal = _bstr_t(OLESTR("=\"Подпись оси Х\""));
        DISPID dispidPut = DISPID_PROPERTYPUT;    
        DISPPARAMS dp;
        dp.cArgs = 1;
        dp.rgvarg = varg;
        dp.rgdispidNamedArgs = &dispidPut;  
        dp.cNamedArgs = 1;
        hr = pDisp->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT,DISPATCH_PROPERTYPUT,&dp, NULL, NULL, NULL);
    }
     

    Но, во-первых, создать подобную надпись, например для оси Y ("YValue") не получается, а, во-вторых, видимо, что-то все же реализовано неверно, ведь если залезть в свойства таблицы, то графа "Заголовки->Ось Х (категорий)" так и останется пустой.
    Кто-нибудь может объяснить, что неверно? Или хотя бы где именно этот случай подробно описывается? Заранее благодарен.

    Всего записей: 151 | Зарегистр. 10-10-2006 | Отправлено: 17:18 17-03-2008 | Исправлено: Antananarivu, 17:19 17-03-2008
    JArik



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Кто нибудь знает как можно получить hostname дефултовского прокси на компе используя тока Вин АПИ ?  
    Уже весь мсдн перерыл ничего не нашел... WinHttp был какой то, но у меня таких библиотек нет(VC++ 2005). Через InternetQueryOption пробовал, он почему то постоянно выдает одно и то же - что соединине прямое, даже если я прокси устанавливаю везде.
    Вот то что пробую сейчас и не пашет:

    Код:
     
     
            INTERNET_PROXY_INFO * proxyInfo = new INTERNET_PROXY_INFO;
            memset(proxyInfo, 0, sizeof(*proxyInfo));
            DWORD dwSize = sizeof(INTERNET_PROXY_INFO);
     
            InternetQueryOption(NULL,  
                         INTERNET_OPTION_PROXY,
                         proxyInfo, &dwSize );
            if(proxyInfo->dwAccessType == INTERNET_OPEN_TYPE_PROXY)
            {
                strcpy(proxy,proxyInfo->lpszProxy);
            }
     

     
    Добавлено:
    Уже нашел :Р

    Код:
     
            INTERNET_PER_CONN_OPTION_LIST    List;
            INTERNET_PER_CONN_OPTION         Option[1];
            unsigned long                    nSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
     
            Option[0].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
            List.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
            List.pszConnection = NULL;
            List.dwOptionCount = 1;
            List.dwOptionError = 0;
            List.pOptions = Option;
            InternetQueryOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &List, &nSize);
            char tempProx[255];
            if(List.pOptions->Value.pszValue)
            {
              strcpy_s(tempProx,sizeof(tempProx),List.pOptions->Value.pszValue);
              strcpy_s(proxy,sizeof(proxy),strtok(tempProx,":"));
              proxyPort = atoi(strtok(NULL,":"));
              PROXY = true;
            }
     

    Через лист опций работает...
    Но берет прокс тока если он установлен в ИЕ(из реестра). Как бы так сделать чтобы брал отовсюду... ?

    Всего записей: 466 | Зарегистр. 09-11-2002 | Отправлено: 03:08 18-03-2008 | Исправлено: JArik, 04:52 18-03-2008
    terminat0r



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Antananarivu

    Цитата:
    Так я так и делал, брал код из VBA и творчески переделывал его в Visual С++

     
    Я не знаю специфики Visual C++. Я это делал много раз, но в БСБ. Если не получается, то тебе надо просто записать макрос в файл, а потом программно запустить этот макрос и не заморачиваться.
    Только имхо стрить графики в екселе- это извращение еще то.

    Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 11:40 18-03-2008
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru