|
Actually before every text no blankspace occur.all are new line character.
"Tag-10||CValve-5||Push-1||ColorPush-5"
Is there any way to search full text.
Like, if im searching for "Push",it should get only "Push" not "ColorPush".Anu
|
|
|
|
|
You have to make a logic with CString::Find based on your requirement.
That is your job.
But if you have a symbol in between each set as you mentioned "||", then
strtok is very useful [^]Величие не Бога может быть недооценена.
|
|
|
|
|
How does it know you are only searching for Push? The literal string is part of ColorPush. If this is the the actual text, it appears you can use the delimiters. Thus you'd search for "\r\nPush-" (Note the dash, else you could also find "\r\nPushBack".)
An alternative is to parse the string and match each keyword as you parse, rather than the other way around.
|
|
|
|
|
This sample code may help
CString sTemp("Tag-10\nCValve-15\nPump-2\nColorPush-1\nPush-5");
int nFindFirstPos=0,nFindNextPos=0;
while ((nFindNextPos=sTemp.Find('\n',nFindFirstPos))!=-1)
{
int nStartIndex = nFindNextPos-1;
while(sTemp.GetAt(nStartIndex)>='0'&&sTemp.GetAt(nStartIndex)<='9')
{
nStartIndex--;
}
CString strNum =sTemp.Mid(nStartIndex+1,nFindNextPos-nStartIndex);
MessageBox(strNum);
nFindFirstPos=nFindNextPos+1;
}
|
|
|
|
|
hi i want to create a 12 buttons dynamically, 6 button 40x40 pixels and 6 button size 60x60 pixels with two different groups (group 1 contains 6 buttons and group 2 contains 6 buttons) with border.and i want to move groups within the dialog eg : MFC dialog window contains many controls and we can easily move the dialog within the screen. same thing i want move the groups which contains buttons within the dialog.
i have created buttons dynamically in a dialog.but i have no idia how to create groups please help me.
Thanks in advance.
|
|
|
|
|
When you create a button use BS_GROUPBOX to get in group
CButton* group1 = new CButton();
group1->Create(_T("Group1"),WS_CHILD|WS_VISIBLE|BS_GROUPBOX, CRect(0,0,360,50), this, 2000);
See the below link [^]Величие не Бога может быть недооценена.
|
|
|
|
|
CButton* group1 = new CButton();
group1->Create(_T("Group1"),WS_CHILD|WS_VISIBLE|BS_GROUPBOX, Rect(0,0,360,50), this, 2000);
i tryied this, but i want to move group along with controls any where in a dialog.but it wont work.
|
|
|
|
|
|
Hello,
Can I create a dialog that is larger than the screen size, and is controlled by the right hand side bar?
I have spent some time looking at information to see if this is possible, but no such luck.
I have currently created a dialog by extending the bottom of the dialog box, and it is approximately 2.5 screens. When I run the program, only one screen's worth of info appears, and no way to get to the rest.
Thank you,
Mark
|
|
|
|
|
You can create windows of any size by handling the WM_GETMINMAXINFO[^] message.
What do you mean by the right hand side bar?
To scroll the window you will be able to click anywhere on the dialog and drag by handling the WM_NCHITTEST[^] message and returning HTCAPTION .
|
|
|
|
|
I do not know the proper term for the item that one can click on on the right hand side of the dialog to go to the next page.
For example, the "bar" gets dragged down by the mouse, and the page moves however many lines you actually drag the mouse. If I click below the "bar", then the next page is displayed.
Most often, this side bar appears on internet pages that consist of many pages.
Does this explanation help?
Thank you
|
|
|
|
|
|
It isnt usual (because unergonomic) to create windows that are larger than the target screen. Better work with tabs or make it somehow fit and resizable to screen.
I wrote an article about some of these issues:
Repositioning Windows on Multiple Monitor Systems[^]Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
Hello,
I have created an application which takes information entered via the GUI and puts this info into a file. I then wish to populate a .doc with this information.
Is anyone aware of a way to do this?
Thank you,
Mark
|
|
|
|
|
|
Hello,
I'm printing out doubles in c++, but not all the values have significant digits. Thus I'd like to accomplish the following using cout:
1.) If value is 90.00, then display it as 90 (no trailing zeros)
2.) If value is 99999999999999.0, then display it as 99999999999999 (not in scientific form)
3.) If value is 9.85545, then display it as 9.85545 (no precision loss)
Is there a combination of simultaneous ios flags that can be used with a single cout statement to accomplish the above 3 goals?
Thanks,
|
|
|
|
|
Use precision(streamsize) to set the max number of significant digits to show, and leave the format for the default/set it to the default if you have changed it.
|
|
|
|
|
Thanks for replying, but this suggestion will not prevent trailing zeros in the case of 90.00 unless I set the precision to zero, but then none of the floating point numbers would have any digits printed to the right of the decimal point.
For example, 9.85545 would no longer be printed as "9.88545" if precision is set to zero. And, if any precision is set other than zero, then integer values will show trailing zeros.
|
|
|
|
|
Wrong (I just tested). There are no trailing 0's with the default flags, and it will not use scientific as long as the number of digits does not exceed the value you set precision for. Default: showpoint unset, scientific unset, and fixed unset.
#include <iostream>
int main() {
std::cout.precision(14);
std::cout << 90.00 << std::endl;
std::cout << 99999999999999.0 << std::endl;
std::cout << 9.85545 << std::endl;
return 0;
}
The above code produces the output you desire.
To reset the appropriate flags to the default use the following:
std::cout.unsetf(ios::showpoint);
std::cout.unsetf(ios::scientific);
std::cout.unsetf(ios::fixed); modified on Thursday, March 4, 2010 10:23 PM
|
|
|
|
|
The reset part doesn't seem to work.
You can do this instead.
std::streamsize ss = std::cout.precision(14);
std::cout.precision(ss);
|
|
|
|
|
The reset is for the flags, not the precision. If they are at the default values, then two of the three problems he posted will be solved. Then once percision is set to a suitably large value, all three of his requirements will be met.
That my original suggestion did not work for him, I assume the flags have been changed somewhere as it works for me; therefore I included code on how to fix them to the correct values.modified on Thursday, March 4, 2010 10:54 PM
|
|
|
|
|
Gwenio,
I just tried your suggestion, and my output now looks exactly as you described. Thanks for your help!
|
|
|
|
|
Hi,
Just a quick question on how this conversion from local time to UTC / GMT works in the "gmtime" function. I created a tm object called m_timeinfo as you can see below. I adjusted the month from January to June but it keeps on printing the time as 14:00:00 no matter what month. I would expect that it would print 15:00:00 for January and the same for June. Have I missed a flag or something?
Thanks for any input.
<br />
tm m_timeinfo;<br />
m_timeinfo.tm_mday = 1;<br />
m_timeinfo.tm_mon = 2 - 1;
m_timeinfo.tm_year = 2010 - 1900;
m_timeinfo.tm_hour = 15;<br />
m_timeinfo.tm_min = 00;<br />
m_timeinfo.tm_sec = 00;<br />
<br />
<br />
tm * ptm = &m_timeinfo;<br />
<br />
<br />
time_t useme = mktime ( ptm );<br />
time_t * usemeptr = &useme;<br />
<br />
tm * result = gmtime ( usemeptr );<br />
<br />
std::cout << "year is " << result->tm_year + 1900 << std::endl;<br />
std::cout << "month is " << result->tm_mon + 1 << std::endl;<br />
std::cout << "day is " << result->tm_mday << std::endl;<br />
std::cout << "hour is " << result->tm_hour << std::endl;<br />
std::cout << "min is " << result->tm_min << std::endl;<br />
std::cout << "sec is " << result->tm_sec << std::endl;<br />
<br />
|
|
|
|
|
You need to correctly set the tm_isdst field - the daylight savings time option.
mktime, _mktime64[^]
|
|
|
|
|