Перейти к содержанию

superman

Пользователи
  • Постов

    355
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные superman

  1. Freedom

    8192 Кбит/с примерно равно 8 Мбит/с примерно равно 1 Мбайт/с примерно равно 1024 Кбайт/с. Такая скорость и должна быть в идеале.

    http://ru.wikipedia.org/wiki/Килобит_в_секунду

    спасибо. Теперь ясно, значит я все таки в плюсе, точ сменил тариф, а то ранее за 999 кб/сек я платил 1200. Но чеж в конкат то так дООООлго заходит.

    Значит ты должен быть в очень большом плюсе. Сам считай: у тебя было 999 Кбит/с (это примерно 124 Кбайт/с), а теперь 8192 Кбит/с, то есть это в 8 раз больше получается.

  2. maksimka2009

    Ух ты, я похожую систему вот думаю брать :) Уже много пересмотрел вариантов. CPU кулер вроде лучше Thermalright True Spirit и видеокарту лучше возьми ASUS Radeon HD6950 1 GB.

    Насчет проца - если решил 2500 (без К), то можно наверно память попроще взять.

  3. Скобки то забыл и не туда B поставил.

    SELECT A.Дисциплина, A.Оценка, A.Семестр
    FROM Все_оценки A
    INNER JOIN
    (SELECT B.Дисциплина, MAX(B.Семестр) AS maxSemestr
    FROM Все_оценки
    GROUP BY A.Дисциплина) B
    ON A.Дисциплина=B.Дисциплина AND A.Семестр=maxSemestr

  4. По описанию выходит так, что нужно просто выполнять первый цикл 4 раза, потом второй цикл и потом снова все повторять, тогда вот так выходит:

    while(true)
    {
    for(i = 0; i < 4; i++)
    {
    основной, выполняется 4 раза
    }

    for(...)
    {
    побочный
    }
    }

    либо, если нужно все в двух циклах уместить, то так:


    for(i = 0; ; i++)
    {
    // основной

    if( i >= 3 ) // выполнился 4 раза
    {
    for(...)
    {
    // побочный
    }

    i = -1;
    }
    }

  5. Может все таки удастся разбить ансистирнг на чары

    AnsiString -> char[] не проблема. Тут вопрос в том, как ты передать должен в функцию SendData целую строку если вот эта вот структура, которую ты передаешь:

    struct dataexchange_t

    { int b1;

    }pdata;

    имеет только 1 поле int.

    Можно конечно цикл сделать. Например так:

    AnsiString s = Edit1->Text;

    for(int i = 0, num = s.getLength(); i < num; i++)

    {

    pdata.b1 = s;

    hid.SendData(&pdata);

    }

    но это туповато выглядит.

    Я не понял, ты эту структуру можешь сам поменять на

    struct dataexchange_t

    { uchar b1[n];

    };

    struct dataexchange_t pdata;

    или нет?

  6. ПРоблема такая что передается только первый символ. Воюю уже с ним второй день.

    Первый символ потому что вот эта строка у тебя:

    pdata.b1=*b1;

    это копирование только первого символа.

    Если строку надо просто передать в функцию

    uchar   usbFunctionWrite(uchar *data, uchar len)

    то делается это так на твоем примере:

    AnsiString s = Edit1->Text;

    char *b1 = new char[s.Length()/sizeof(uchar)+1];

    memcpy(b1,s.c_str(),s.Length());

    usbFunctionWrite(b1, s.Length()); // хотя len надо по другому вычислять если sizeof(char) != sizeof(твой uchar)

  7. Кстати сейчас заметил в твоем коде еще есть запись за пределы выделенной памяти в копировании строки. Вот здесь:

    char * b1 = new char[s.Length()]; // выделяешь памяти ровно под количество символов в строке

    strcpy(b1,s.c_str()); // копируешь. Но так как strcpy еще попытается записать 0 в конец, вылезет за пределы выделенного куска памяти.

    В общем если тебе нужен просто массив uchar то можешь так попробовать:

    uchar* b1 = new uchar[s.Length() / sizeof(uchar) + 1];

    memcpy(b1, c.c_str(), s.Length());

    используешь b1 (передаешь в SendData и т.п.), после чего

    delete [] b1.

  8. напиши лучше что за функция такая - SendData и что за параметр она принимает.

    В твоем коде ты скопировал в b1 строку. Но не сделал ее null-terminated (что возможно и не нужно, в зависимости от того в каком виде тебе нужна строка).

    Передался только один символ потому что pdata.b1 = *b1 это и есть копирование первого символа.

    Кроме того у тебя память утекает здесь.

  9. Это разные языки, и по крайней мере С++ на мой взгляд нисколько не устарел, а продолжает активно развиваться, новый стандарт уже наполовину работает. Области применения хоть и пересекаются, но все таки тоже разные. Поэтому, чтобы выбрать, думаю стоит решить чем ты собираешься заниматься?

    Вообще, лично мое мнение, изучить С\С++ на хорошем уровне (например, досконально разобраться с тем, что такое указатель и как выделяется память) - в любом случае очень сильно поможет далее при изучении Java или других подобных языков.

×
×
  • Создать...