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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    bombastic



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Проблема: проэкт скомпелирован в 2 выполняемых файла (*.exe). Нужно запускать один за другим.
     
    Вопрос: какую команду/метод нужно вставить в код, чтобы запустить *.exe файл?

    Всего записей: 91 | Зарегистр. 26-05-2005 | Отправлено: 20:44 02-06-2006
    RedLord

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    CreateProcess, семейство _exec - смотри MSDN

    Всего записей: 730 | Зарегистр. 05-03-2004 | Отправлено: 21:00 02-06-2006
    LLexa

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ ПОМОГИТЕ!!
    Неделю бъюсь над задачей:
     " Дополнить текст строкой, состоящей из первых слов всех строк" =(
      Я знаю, что (нужно) можно действовать через pos, string,substring,ansistring
    ( в C++ Builder)

    Всего записей: 2 | Зарегистр. 01-06-2006 | Отправлено: 02:06 03-06-2006
    koderr



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

    Код:
     
    #include <windows.h>
    int main()
    {
        HFILE hFile;
        DWORD dwSize;
        DWORD nBytes;
        char *lpBuffer1;
        char *lpBuffer2;
        int i = 0, j = 0;
     
        hFile = CreateFile("input.txt", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
        if(hFile != -1)
        {
            dwSize = GetFileSize(hFile, NULL);
            lpBuffer1 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwSize);
            lpBuffer2 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwSize);
            ReadFile(hFile, lpBuffer1, dwSize, &nBytes, NULL);
            lpBuffer1[nBytes] = 0;        // write terminating byte to source buffer
            lpBuffer2[j] = 13;            // write
            lpBuffer2[j + 1] = 10;        //        CRLF
            j += 2;                        //            to destination buffer
            while(lpBuffer1[i] != 0)
            {
                while(lpBuffer1[i] == ' ' || lpBuffer1[i] == '\t')
                {
                    i++;                            // skip leading spaces and tabs
                }
                while(lpBuffer1[i] != ' ' && lpBuffer1[i] != '\t' && lpBuffer1[i] != 13)
                {
                    lpBuffer2[j] = lpBuffer1[i];    // write to destination buffer
                    i++;
                    j++;
                }
                lpBuffer2[j] = ' ';
                j++;
                while(lpBuffer1[i] != 10) i++;        // feed line
                i++;
            }
            lpBuffer2[j] = 0;                        // terminating character
            SetFilePointer(hFile, 0, NULL, FILE_END);
            WriteFile(hFile, lpBuffer2, j, &nBytes, NULL);
            CloseHandle(hFile);
            HeapFree(GetProcessHeap(), 0, lpBuffer1);
            HeapFree(GetProcessHeap(), 0, lpBuffer2);
        }
     
        return 0;
    }
     

     
    Добавлено:
    Правда, прога будет считать "словом" и знаки препинания тоже... Это несложно поправить, нужно лишь вместо

    Код:
     
    lpBuffer1[i] != ' ' && lpBuffer1[i] != '\t'
     

    прогонять в цикле сравнение с набором символов '.,!?:;"' или типа того

    Всего записей: 353 | Зарегистр. 22-06-2005 | Отправлено: 12:06 06-06-2006
    JekaCh

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Здравствуйте! Если кто знает подскажите плиз. Программка загружает текстовый файл и считывает из него данные. Проблема следующая:
    1. Нужно проверить текстовый файл перед загрузкой на соотвествие шаблону. Шаблон следующий - 8 чисел разделённых табулятором. Как это сделать?
    2. Можно как-то получить число строчек в файле не считывая весь файл? Или считать первое число в последней строчке файла не считывая перед эти весь файл? Просто приходится программой загружать большие файлы хочу сделать ProgressBar загрузки.

    Всего записей: 46 | Зарегистр. 26-08-2003 | Отправлено: 12:42 14-06-2006
    zMD

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Никогда не знал C++, ну да и не особо переживал по этому поводу. Но вот один момент никогда не давал мне покоя.
    Borland C++ (не Builder)
    Допустим, создаю окошко функцией window.
    Начинаю для этого окошка рисовать превдографикой красивую такую рамочку. Все отлично рисуется, до самого последнего символа. Когда ставлю последний символ, гадкий DOS перевод строку, возращает указатель на первый стобец, в результате чего возникает неприятный артефакт - две последние строки дублируются, рамка смещается вверх на 1 строку, ну да Вам, думаю, знакома эта ситуация. Посему вопрос - как же все-таки красиво нарисовать эту дурацку рамочку в псевдографике?

    Всего записей: 7 | Зарегистр. 14-06-2006 | Отправлено: 19:20 14-06-2006
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JekaCh
    1. Считать первую строку (fgets), из неё попробовать считать 9 чисел в соответствии с форматом шаблона (sscanf). Если получилось 8 - оно.
    2. Нельзя. Но если длина всех строк одинакова, можно взять размер файла и разделить его на длину строки, не забыв про CR/LF.
     
    zMD
    BC 3.1 и DOS программа? Тогда стоит использовать консольные функции вывода из того же conio.h - cputs, cprintf, putch, gotoxy.

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 21:22 14-06-2006
    LLexa

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KODERR
    -Огромное СПАСИБО!
    П.С. Всё прокатило!!!

    Всего записей: 2 | Зарегистр. 01-06-2006 | Отправлено: 22:45 14-06-2006
    zMD

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62, неа, та же фигня. Правда, я поборол природную лень и открыл help (в который раз), и, о чудо!, я обнаружил простую такую функцию под названием putchar, которая частично решила мою проблему (так как ей по-ходу наплевать в окошке она символ ставит или где, просто сдвигает курсор на одну позицию вправо или вниз), т.е. window я могу теперь рамочкой обводить, но сделать  рамку из символов для всего экрана не могу (все равно переводит строки).

    Всего записей: 7 | Зарегистр. 14-06-2006 | Отправлено: 00:46 15-06-2006 | Исправлено: zMD, 00:47 15-06-2006
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    zMD
    Тогда задействуй puttext всё из того же conio.h. Уж он-то на курсор не влияет, насколько я помню.

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 01:31 15-06-2006
    Mickey_from_nsk

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JekaCh
    2. А тебе действительно прогресс бар охота в строчках мерить? Можно получить размер файла и по мере его считывания получать текущую позицию. Это и отображать на прогресс-баре.

    Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 11:19 15-06-2006
    zMD

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62, спасибо, текст, действительно не переносит, но возникла другая проблема.
    Насколько я понял, эта функция выводит текст следующим образом: символ/атрибут/символ/атрибут, в общем-то ничего сложного, но тут какой-то совершенно жутчайший атрибут текста. Никак не могу подобрать для белого символа на черном фоне. Вернее навскидочку это будет что-то вроде: § (0x15), но как его засандалить в текст типа:
    putchar(1,2,2,2, "t ");  
    после буквы t, не имею ни малейшего понятия.

    Всего записей: 7 | Зарегистр. 14-06-2006 | Отправлено: 14:07 15-06-2006
    Abs62



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

    Цитата:
    но тут какой-то совершенно жутчайший атрибут текста.

    Ничего жуткого в нём нет - обычный байт.
    Младшие 4 бита - цвет текста (0-15).
    Следующие 3 бита - цвет фона (0-7).
    Самый старший бит заставляет текст мигать, если установлен.

    Цитата:
    putchar(1,2,2,2, "t ");

    puttext(1,2,1,2, "t\x0F");
     
    Но может быть проще сделать простенькую функцию, которая будет формировать нужную строку и выводить её на экран. Что-нибудь вроде этого:

    Код:
    #define BUFFER_SIZE 80
    int PutString(int x,int y, const char *text, unsigned char attribute)
    {
    char Buffer[BUFFER_SIZE*2];
    int i,n;
      n=strlen(text);
      if(n>BUFFER_SIZE) n=BUFFER_SIZE;
      for(i=0;i<n;i++) {
        Buffer[i*2]=text[i];
        Buffer[i*2+1]=attribute;
      }
      return(puttext(x,y,x+n-1,y,Buffer));
    }
     

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 21:55 15-06-2006
    zMD

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62, спасибо еще раз, что подсказал как записывать 16-ричные числа.
    По поводу функции, конечно, буду выводить строку целиком, просто хотел прояснить на примере.

    Всего записей: 7 | Зарегистр. 14-06-2006 | Отправлено: 22:29 15-06-2006 | Исправлено: zMD, 22:32 15-06-2006
    vserd

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем доброго здравия!!!
    Поясните такую проблемку.
    Есть проект в котором определен класс.
    Есть другой проект в котором я хочу использовать этот класс.
    Структура проектов
    первый \source\
    второй \source\test\
    в .сpp файле второго проекта написал  
    #include "../prj1.h"
    объявления класса подхватилось. Но при линковке вылазит сообщение Link 2001 unresolved external simbol ... и дальше имя метода класса.
    Если включить соответсвующий prj1.cpp в проект то все работает. Но его включение загромождает проект. В Delphi я просто указывал в таком случае что нужно искать в определенной папке и все, а как в VC++ 6.0 это можно сделать?
     

    Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 11:09 16-06-2006
    WiseAlex



    Софтовых дел М...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vserd
    Я конечно могу ошибаться, но, по-моему, другого метода нет. В отличии от delphi в с++ нет понятия библиотеки (а жаль...).

    Всего записей: 1001 | Зарегистр. 02-03-2003 | Отправлено: 11:26 16-06-2006
    Mickey_from_nsk

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vserd
    Можно сделать библиотеку классов и зацепить ее из второго проекта.

    Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 12:41 16-06-2006
    vserd

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    WiseAlex, Mickey_from_nsk
    Давайте немного переформулируем задачку.  
    Есть проект, разбросанный по разным папкам. Как осуществить генерацию финального EXE? Ведь по сути у меня такая картина: Есть несколько файлов исходников и заголовочных. С заголовочными я разобрался, там либо указывать относительные пути, либо прописывать в параметре поиска. Мне нужен такой-же параметр для .cpp. чтобы линкер искал исходники вне текущей папки. Ведь никто в здравом уме не будет скидывать сотни и тысячи файлов в одну папку ради компиляции проекта. Как-то эту проблему решают, и решение на поверхности, просто у меня нет нужных ориентиров куда копать. :(

    Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 13:01 16-06-2006
    vhl



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Народ, кто-нибудь знает где найти инфу по оптимизации под HT/многоядерность? А то порыл инет - так ничего толкового не нашел

    Всего записей: 106 | Зарегистр. 28-12-2003 | Отправлено: 13:06 16-06-2006
    WiseAlex



    Софтовых дел М...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vserd
    как я понял нужно взять и перенести проект на другой компьютер (в др. место) и там собрать.
    Если так, то в проете запоминаются относительные пути. главное расположить все аналогично - т.е. если есть проект в c:\a\b а все зависимости в c:\a? а располагаем в d:\b\bb\bbb то щависимости лягут в d:\b\bb - т.е. сохраняем относительные пути (относительно самого проекта)
    Надеюсь понятно (а то сам могу запутаться). Достоверность не 100%

    Цитата:
    чтобы линкер искал исходники вне текущей папки.

    линкер с исходниками вообще-то не работает В общем случае приходится указывать компилятору сам cpp (в том месте где он есть)
     
    Добавлено:
    vhl
    посмотри например здесь
    На каком уровне нужно оптимизировать и почему вопрос в ветке по С++?

    Всего записей: 1001 | Зарегистр. 02-03-2003 | Отправлено: 16:24 16-06-2006
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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