Вопрос № 105321: Здраствуйте !
Подскажите как скопировать подстроку из строки !
тоисть есть например строка "Хороший день" то например как из строки скопировать стово хороший ?
Заранее благодарен ! ...Вопрос № 105325: Начал изучать си.По книге Писал простейший пример используя MCF AppWizartюВ общем беда случилась при объявлении класса.
void CSingleDIView::OnRButtonDown(UINT nFlags, CPoint point)
{
CInfo info;
CEdit&edit=GetEditCtrl();
inf...Вопрос № 105326: Здраствуйте!
При програмировании в линуксе, gcc использовал, подключил библиотеку math - математика, чтобы использовать sqrt, а gcc говорит нет такого(sqrt), почему?
...Вопрос № 105327: Срочно помогите написать программу на С++ для borland 3.1
Даны действительные числа X1,Y1, X2,Y2,..., X10,Y10. Найти периметр десятиугольника, вершины которого имеют соответственно координаты (X1,Y1), (X2,Y2),..., (X10,Y10). Определить проц...Вопрос № 105331: ПОЖАШЛУСТА ПОМОГИТЕ НАПИСАТЬ ПРОГУ НА С++ ДЛЯ BORLAND 3.1
Задана строка символов. Требуется преобразовать последовательность следующим образом. Удалить группы пробелов, которыми начинается и заканчивается последовательность, а также заменить...Вопрос № 105365: Как в С++ Builder выделить фоном или шрифтом ячейку в StringGrid? При применении функции события OnDraw() (кажется так называется), ячейка закрашивается, но текст пропадает. Спасибо....Вопрос № 105372: У меня вопрос по
работе с пораллельным портом, в частности меня интересует COM1.
Мне необходимо считывать данныы (байты) и рисовать график(например полученных быйтов). Но надо чтобы график как можно быстрее реагировал на изменение принимаемых бай...
Вопрос № 105.321
Здраствуйте !
Подскажите как скопировать подстроку из строки !
тоисть есть например строка "Хороший день" то например как из строки скопировать стово хороший ?
Заранее благодарен !
Отправлен: 13.10.2007, 16:24
Вопрос задал: VaNuk (статус: 3-ий класс)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: CruelHity
Здравствуйте, VaNuk!
Функции strncpy(char *,const char*,int)- Это копировать а добавить strncatstrcpy(char *,const char*,int)
Параметры
1- буфер в который копируем или вставляем
2-буфер из которого копируеться
3-количество копируемых символов
Смотрите пример
Приложение:
Ответ отправил: CruelHity (статус: 1-ый класс)
Ответ отправлен: 13.10.2007, 16:31 Оценка за ответ: 5 Комментарий оценки: Спасибо
Отвечает: Попов А.С.
Здравствуйте, VaNuk!
В string.h есть функция char* strtok(char* a,char* b) которая разбивает строку на подстроки разделенные любым символом из b. Решение задачи в приложении
Приложение:
Ответ отправил: Попов А.С. (статус: 2-ой класс)
Ответ отправлен: 13.10.2007, 16:58 Оценка за ответ: 5 Комментарий оценки: Спасибо
Отвечает: Гальцов Андрей Михаилович
Здравствуйте, VaNuk!
Держите программу, которая ищет подстроку в строке (ф-ция substr) и зяменяет её новой подстракой (ф-ция replace)...
Приложение:
--------- Да здравтствует С++!!!...;)
Ответ отправил: Гальцов Андрей Михаилович (статус: 6-ой класс)
Ответ отправлен: 13.10.2007, 21:54 Оценка за ответ: 5 Комментарий оценки: спасибо
error C2065: 'CInfo' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'info'
error C2065: 'info' : undeclared identifier
error C2228: left of '.DoModal' must have class/struct/union type
почему не работает,ничего не могу понять.Вроде все правильно писал,как в книге.
может кто сталкивался с таким.Помогите!!!!
Пишу программу на Visual C++ 6 , у меня установлена ОС Windows XP. Может с этим что то связано?Хотя...
Также делал примеры(уроки) с сайта progs.biz
все работало,пока не дошло дело до классов -урок 18 (http://progs.biz/vc/mfc/lessons/018.aspx)
и все,перестало работать. опять те же ошибки
помогите,срочно надо с этим разобраться!!!!!!
Отвечает: CruelHity
Здравствуйте, Чижик Михаил Владимирович!
Урок не смотрел времени нет! а ошибка у вас такая что не определен класс CInfo
Он скорее всего опрелен в другом исходнике, подключите его!
Это делаеться так находите где описан CInfo(вам важно имя файла например Info.h) и прописываете в файле где он будет фыполняться(например SingleDIView.срр)
#include "info.h"
Ответ отправил: CruelHity (статус: 1-ый класс)
Ответ отправлен: 13.10.2007, 22:22 Оценка за ответ: 5 Комментарий оценки: Спасибо за подсказку.Так и было.Как вставил эту строчку.Так все и заработало!!!Но тот пример(урок) все равно не работает http://progs.biz/vc/mfc/lessons/018.aspx там видимо что то другое
Отвечает: Maxim V.G.
Здравствуйте, Чижик Михаил Владимирович!
Посмотрел предложенный урок. Там предлагают немного другой код добавить :(. А указанного Вами кода надо самому создать класс CInfo (в МФЦ не видел такого базового класса), а потом его использовать.
--------- Жить вредно - от неё умирают
Ответ отправил: Maxim V.G. (статус: 5-ый класс)
Ответ отправлен: 14.10.2007, 11:28
Вопрос № 105.326
Здраствуйте!
При програмировании в линуксе, gcc использовал, подключил библиотеку math - математика, чтобы использовать sqrt, а gcc говорит нет такого(sqrt), почему?
Приложение:
Отправлен: 13.10.2007, 17:26
Вопрос задал: KuchumHan (статус: Студент)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Dr_Andrew
Здравствуйте, KuchumHan!
Ответ очевиден из приведённого Вами кода:
float r,s=0.0;
/* ... *
s=sqrt(s);
Воспользуемся man math.h
Что видим? Прототипы функций:
double sqrt(double);
float sqrtf(float);
long double sqrtl(long double);
Т.е. в Вашем случае имеет место быть несоответствие типов принимаемых функцией параметров. А поскольку компилятор различает функции с одинаковыми именами по их параметрам, то, разумеется, он сообщает, что такой функции нет.
Решение: воспользуйтесь функцией sqrtf либо проведите прямое приведение типа параметра: s=sqrt((double)s);
Ответ отправил: Dr_Andrew (статус: 1-ый класс)
Ответ отправлен: 15.10.2007, 08:35 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ, проверю, а потом отвечу Вам.
Вопрос № 105.327
Срочно помогите написать программу на С++ для borland 3.1
Даны действительные числа X1,Y1, X2,Y2,..., X10,Y10. Найти периметр десятиугольника, вершины которого имеют соответственно координаты (X1,Y1), (X2,Y2),..., (X10,Y10). Определить процедуру вычисления расстояния между точками, заданными своими координатами.
Отвечает: Гальцов Андрей Михаилович
Здравствуйте, Предеин Денис Дмитроевич!
К преподавателю Вы подойдёте во все оружия!...Держите!...
Приложение:
--------- Да здравтствует С++!!!...;)
Ответ отправил: Гальцов Андрей Михаилович (статус: 6-ой класс)
Ответ отправлен: 13.10.2007, 21:40 Оценка за ответ: 5 Комментарий оценки: Молодец!!! Работает отлично!!! правильно!!!
Вопрос № 105.331
ПОЖАШЛУСТА ПОМОГИТЕ НАПИСАТЬ ПРОГУ НА С++ ДЛЯ BORLAND 3.1
Задана строка символов. Требуется преобразовать последовательность следующим образом. Удалить группы пробелов, которыми начинается и заканчивается последовательность, а также заменить каждую внутреннюю группу пробелов одним пробелом.
Отвечает: Mihail Yarlykov
Здравствуйте, Предеин Денис Дмитроевич!
В приложении смотрите программу
Приложение:
--------- Нет ничего невозможного!
Ответ отправил: Mihail Yarlykov (статус: 2-ой класс)
Ответ отправлен: 13.10.2007, 19:28 Оценка за ответ: 5 Комментарий оценки: РАБОТАЕТ!!!
Вопрос № 105.365
Как в С++ Builder выделить фоном или шрифтом ячейку в StringGrid? При применении функции события OnDraw() (кажется так называется), ячейка закрашивается, но текст пропадает. Спасибо.
Отвечает: Гальцов Андрей Михаилович
Здравствуйте, Афтайкин Владимир Максимович!
Возможно стоит попробовать сначала закрасить ячейку цветом и потом уже записывать в нё текст...В полне логично, что при заливке пропадает текст...т.к. закрашивается всё её содержимое...
--------- Да здравтствует С++!!!...;)
Ответ отправил: Гальцов Андрей Михаилович (статус: 6-ой класс)
Ответ отправлен: 13.10.2007, 23:37 Оценка за ответ: 3 Комментарий оценки: Не получается. void __fastcall TForm2::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { if(color[ARow]) //массив bool { StringGrid1->Canvas->Brush->Color=clRed; StringGrid1->Canvas->FillRect(Rect); SetBkColor(StringGrid1->Handle,clBlack); TextOut(StringGrid1->Handle,Rect.Left+1,Rect.Top+1, StringGrid1->Cells[ACol][ARow].c_str(), StringGrid1->Cells[ACol][ARow].Length() ); //Ячейки
заполняются в другой функции //Ячейки окрашиваются, но текст не записывается (Borland Developer Studio) } }
Отвечает: Новак Александр Васильевич
Здравствуйте, Афтайкин Владимир Максимович!
Вот какой выход я нашёл, к сожалению у меня нет BC++ и я накатал примерчик на DELPHI я думаю больших проблем с пониманием кода не возникнет, т.к исползуются API-ф—ций и вы его увидете если модераторы не отфильтруют, мол нетот язык(-% просто хотелось помоч человеку %-)
Приложение:
--------- ПОЛЬЗУЙТЕСЯ НАШИМИ ПРОГРАММАМИ, ПОДДЕРЖИТЕ РОССИЙСКИХ ПРОГРАММИСТОВ ИНАЧЕ МЫ ВЫМРЕМ КАК МАМОНТЫ. ;-)
Ответ отправил: Новак Александр Васильевич (статус: 2-ой класс)
Ответ отправлен: 14.10.2007, 16:14 Оценка за ответ: 4 Комментарий оценки: Не получается. void __fastcall TForm2::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { if(color[ARow]) //массив bool { StringGrid1->Canvas->Brush->Color=clRed; StringGrid1->Canvas->FillRect(Rect); SetBkColor(StringGrid1->Handle,clBlack); TextOut(StringGrid1->Handle,Rect.Left+1,Rect.Top+1, StringGrid1->Cells[ACol][ARow].c_str(), StringGrid1->Cells[ACol][ARow].Length() ); //Ячейки
заполняются в другой функции //Ячейки окрашиваются, но текст не записывается (Borland Developer Studio) } }
Вопрос № 105.372
У меня вопрос по работе с пораллельным портом, в частности меня интересует COM1.
Мне необходимо считывать данныы (байты) и рисовать график(например полученных быйтов). Но надо чтобы график как можно быстрее реагировал на изменение принимаемых байтов.
Я пользуюсь MVS2005, языком С++. Есть встроенный класс SerialPort
Даже есть функция(событие) на принятие байта
DataReceived(System::Object^ sender, System::IO::Ports::SerialDataReceivedEventArgs^ e)
все бы хорошо, но у меня скорость порта 115200 (- необходимая скорость, в свое задаче уменьшить её я не могу). Данные не успевают приниматься, из-за этого идет наполнее буффера, а в следствии задержка, которая быстро растет.
Подскажите плиз как быть.
Есть вариант использования MSCOMM, но не могу разобраться как с ним работать, все описания для VB. Может подскажете ссылку на описание в С++? Спасибо!
Отправлен: 14.10.2007, 00:46
Вопрос задал: Sat (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Aristos
Здравствуйте, Sat!
Если данные не успевают обрабатываться, то попробуйте имитировать меньшую скорость путем обработки части значений, если это приемлимо. Например, обрабатывайте каждое 2 или 3 байт. Так же можно накапливать байты, и обрабатывать (рисовать) сразу несколько. Таким образом можно будет избежать переполнения буфера.
Этот способ сработает если данные будут успевать приниматься и накапливаться. А медленной операцией является обработка, например, перерисовка графика.
--------- нет ничего невозможного
Ответ отправил: Aristos (статус: 8-ой класс)
Ответ отправлен: 14.10.2007, 01:13 Оценка за ответ: 4
Отвечает: Maxim V.G.
Здравствуйте, Sat!
Для обработки плученных данных в реальном времени надо использовать ОС реального времени (например QNX). Можно попрбывать на embeded ОС, но не пробовал.
Что касается windows то для увелечения скорости можно предпринять следующие действия:
Реализовал указанную задачу, как минимум, 2 потоками, не включая потоков главного окна - один рисует график, второй принимает данные. Причём тело графика нарисовать один раз, а потом дорисовывать кривую. И данные лучше получать не по 1 байту, а пакетом по несколько байт потом парсить строку и разбивать на одленые байты.
Но обязательно надо организовывать задержку после принятия пакета данных напрмер в 10 ms (подбирать время на месте). Без такой задержки процессор обычно виснет и данные теряются. Ещё для более реального отображения можно посчитать время на перерисовку (дорисовку) графика и отложить отрисовку в начале работы программы на посчитанное время. Т.е первые 5 сек график чистый - накопление данных. А потом через буфер начинают поступать данные и начинается отрисовка. На скорость обработки данных накладывается много параметров:
загруженность ОС, выполнение других задач ОС и др. процессы связанные с работой ОС на которые повлиять не получиться.
Удачи в работе!!!
--------- Жить вредно - от неё умирают
Ответ отправил: Maxim V.G. (статус: 5-ый класс)
Ответ отправлен: 14.10.2007, 12:04 Оценка за ответ: 4