|
Thanks for your reply Hamid.
I can assure you that TerminateProcess will be my last resort in attempting to kill explorer
The thing is, I don't want to send a WM_CLOSE message to explorer.exe, as that brings up the Windows shutdown prompt. Is there any other way I can exit explorer.exe, excluding "tskill explorer"?
|
|
|
|
|
Sample input string
james 35 bond 30
berry 40 bond 37
The program must separte each line into 4 parts. first name, age, last name, and age+7, the following code is a sample of with only 2 component, I don't know how to do it with 4 components. Could someone edit the code for me please.
[CODE]void main(int argc, char *argv[])
{
struct person list[];
int i,n;
char *ch, *ch1;
char buf[256];
FILE *file1;
i=0;
fgets(buf,250,file1);
while(!feof(file1))
{
ch=strchr(buf,'\n');
if (ch!=NULL) *ch='\0';
else break;
ch = strchr(buf, ' ');
if(ch!=NULL)
{
*ch='\0';
ch1=++ch; //age
}
else break;
strcpy(list[i].lastname,buf);
list[i].age=atoi(ch1);
i++;
fgets(buf,256,file1);
}
n=i;
for(i=0;i<n;i++)
printf("%s is %d years, first name is %s\n", list[i].lastname, list[i].age);
}[/CODE]
|
|
|
|
|
Happy using C++ and STL? Then this should do you:
#include <sstream>
#include <iostream>
#include <fstream>
#include <string>
int main(int argc, char** argv)
{
std::ifstream f(argv[1]);
while (f)
{
std::string firstName, lastName;
int age1, age2;
f >> firstName >> age1 >> lastName >> age2;
if (!f) break;
std::cout << firstName << std::endl;
std::cout << lastName << std::endl;
std::cout << age1 << std::endl;
std::cout << age2 << std::endl;
}
}
This does require that your file has the right format - if you need to check the format, then I'd use a regex library, like Boost.Regex or the TR1 library included in VS2008. If you use one of those, this code works:
#include <sstream>
#include <iostream>
#include <fstream>
#include <string>
#include <boost/regex.hpp>
int main(int argc, char** argv)
{
std::ifstream f(argv[1]);
while (f)
{
std::string line;
std::getline(f, line);
boost::regex sreLine("^(\\S+)\\s+(\\d+)\\s+(\\S+)\\s+(\\d+)\\s*$");
boost::smatch match;
if (boost::regex_match(line, match, sreLine))
{
std::cout << match[1] << ' ' << match[2] << ' '
<< match[3] << ' ' << match[4] << std::endl;
}
else
{
std::cerr << "Line \"" << line << "\" doesn\'t match\n";
}
}
}
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
sorry, but I'm seekiing for a answer using C only.
|
|
|
|
|
You want to make life difficult for yourself, eh
How about using strtok, then:
char line[] = "james 30 may 40";
for (char* phrase = strtok(line, " ");
phrase;
phrase = strtok(NULL, " "))
{
printf("%s\n", phrase);
}
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Using straight C, you're on the right path; compile and debug it (though I can already see a problem with how do you the loop with fgets/feof. As an alternative to your manual parsing, use strtok (you could also play around with sscanf/fscanf.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
hello,
is there an easy way to put a CDialogBar on a CDialog ?
Thankyou very much.
|
|
|
|
|
found it -> RepositionBars
|
|
|
|
|
simple c++ questions
Hi what is that?!
TCHAR *pos;
pos = _tcsstr(key, _T("\"%1\""));
??
and
dc.FillRect(rectArea.operator LPRECT(),&m_brBckColor);
how is that
and
NewButtonRect -= CSize(ButtonRect.right - point.x + m_nJumpDistance, 0);
what does this mean?
if one can delete this post and answer me in private i think the questions are so simple I,am confused
ty
|
|
|
|
|
Try clicking on the command bit, and pressing f1 - it will search your help fils for them.
Failing that, there's always google.
1/
First google search for _tccstr led me to this sentence:
"Return a pointer to the first occurrence of a search string in a string.".
Read more, and I bet key is a TCHAR string, and you're looking for "%1" in it.
3/
dc.?
FillRect?
Look st athe surrounding code - you'll see what kind of a "thing" dc is. It will be a CDC, or class for a drawing (or is it device?) context. Look at the help for it, and you'll find a FillRect member function. From there, you can find it out for yourself.
3/
Whatever NewButtonRect is (I bet it's the size that a new button will be...) it's just been shrunk by an amount defined in that equation. Put a breakpoint earlier in the code to see the variables as the get inisitialised and changed.
This is all early stuff - and it takes time to sink in. The best way to learn is to follow the code through, and to take notes.
I wish you luck on your journey!
Iain.
Codeproject MVP for C++, I can't believe it's for my lounge posts...
|
|
|
|
|
Thanks for reply
pos = _tcsstr(key, _T("\"%1\""));
here what is pos value? '
In dc.FillRect(rectArea.operator LPRECT(),&m_brBckColor);
what is rectArea.operator LPRECT() what does this do?
and here
NewButtonRect -= CSize(ButtonRect.right - point.x + m_nJumpDistance, 0); what
will be the new values of NewButtonRect top left buttom right
Thanks
|
|
|
|
|
Mohammadj wrote: here what is pos value?
Did you read the documentation for that command?
Mohammadj wrote: what is rectArea.operator LPRECT() what does this do?
That is oddly written. If rectArea is a CRect, they could have written &rectArea instead.
Mohammadj wrote: what will be the new values of NewButtonRect top left buttom right
As I said, use the debugger to see the other values, without knowing them, I can;t answer. And if you can tell me, you don't need me to answer.
Iain.
Codeproject MVP for C++, I can't believe it's for my lounge posts...
|
|
|
|
|
Is it a quiz? What is the prize for the winner?
Mohammadj wrote: pos = _tcsstr(key, _T("\"%1\""));
here what is pos value? '
It strongly depends on key value.
Mohammadj wrote: In dc.FillRect(rectArea.operator LPRECT(),&m_brBckColor);
what is rectArea.operator LPRECT() what does this do?
It is a cast operator. It casts.
Mohammadj wrote: NewButtonRect -= CSize(ButtonRect.right - point.x + m_nJumpDistance, 0); what
will be the new values of NewButtonRect top left buttom right
Again, it strongly depends on the values of the operator arguments.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
hi
Thanks for replies
CRect rect1 ;
CRect rect2(1,2,11,13) ;
rect1 = rect2 -CSize( 3 ,5);
what is the new value of rect1 ?
Thanks
|
|
|
|
|
My guess is CRect(-2, -3, 9, 8).
BTW you have a debugger, haven't you?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
I have 2 rect
CRect rect1( 4,5, 60,70);
CRect rect2(10,11, 90,100);
Bool IsIntersected ;// to check whether the rectangles are intersected ?!
how to use IntersectRect to see wheather the rectangle are intersected
I saw from msdn it uses casting? !~!
|
|
|
|
|
From documentation http://msdn.microsoft.com/en-us/library/262w7389(VS.80).aspx:
CRect rect1( 4,5, 60,70);
CRect rect2(10,11, 90,100);
CRect rectInter.IntersectRect(rect1, rect2);
bool areIntersected = rectInter.IsRectNull()==FALSE;
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
|
That's viable (just make sure to declare the flag as BOOL , instead of bool ).
BTW: why posting question here, if you've the solutions?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hi There,
I need to download web pages from a website but don't want the images on that page.
Please let me know how we can download only contents of web page without any image.
Thanks!
|
|
|
|
|
Did you see IHTMLElement?
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
Hi,
I'm a newbie in VC++.
I have to implement this into VC++, so please suggest.
|
|
|
|
|
Open a particular Directory
void CMultipleEOFDlg::OnBrowse()
{
CFileDialog dlg(TRUE);
CString sPath = "c:\\program files\\my folder\\1.c";
int nPos = sPath.Find("\\");
nPos = sPath.Find("\\",nPos + 1);
sPath = sPath.Left(nPos + 1);
dlg.m_ofn.lpstrInitialDir=sPath;
dlg.DoModal();
}
================================================================================
void CMultipleEOFDlg::OnBrowse()
{
char strFilter[] = { "Text Files (*.txt)|*.bcr|All Files (*.*)|*.*||" };
CFileDialog FileDlg(TRUE, "*.txt", NULL, 0, strFilter);
if( FileDlg.DoModal() == IDOK )
{
m_strFilePath = FileDlg.GetPathName();
}
AfxMessageBox(m_strFilePath);
UpdateData(FALSE);
}
|
|
|
|
|
Hi, just like the topic, thanks.
|
|
|
|
|
Nope, need a little more idea of what you mean. The terms you use are broad enough that you could mean one of several things.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|