|
Hi,
Still working on the program that sends messages over the internet.
The problem that I am facing now is inserting a delay. I need to insert a delay between sending numbers when i read from a file. The file just contains a bunch of numbers, each on their own line. I need to just put some delay that the user will set in another dialog box.
Any ideas on how this is possible? Please help if you have any information.
Thanks for your help.
Jimmy
Just cause I am 15, doesn't mean I'm dumb! (I'll really be 4 on Feb. 29...the year 2004)
|
|
|
|
|
Use a Sleep() before opening the file.
John
|
|
|
|
|
Hi John,
I need to have the delay while reading the file. I need to read a few numbers from the file, then delay for some amount of time (which is determined by the user in another dialog box) and then read some more.
Can someone tell me if this is possible? if so, can someone lead me in the right direction. sample code maybe?
thanks for the help.
Jimmy
Just cause I am 15, doesn't mean I'm dumb! (I'll really be 4 on Feb. 29...the year 2004)
|
|
|
|
|
NewHSKid wrote:
Can someone tell me if this is possible?
It should be pretty easy to do. Is there a chance that the delay will be long > a few seconds? The reason why I ask is it is very easy to add a Sleep(). In the simple case during the Sleep() the window will not be updated at all. If the user trys to minimize or move the window it will appear hung. If this is a problem then we will have to go about it in another way. The other question is how are you openining the file (CFile, ifstream CreateFile() ...)? There are so many functions to use.
John
|
|
|
|
|
John,
Sorry for not giving you the information you need to help me. I have been trying to do this in between doing my HW.
Well I have an app done in MFC, with a lot of dialog boxes. I connect to the server and have to send these numbers to the server. The numbers are all different basic math calculations. Any how I write the numbers to a file, each one having its own line. My program is supposed to send all the numbers to the server, but here is the problem. The user can choose to add a delay in sending the information. So it should send one number, then delay for a short time, then send the next then delay for the same amount of time.
The time is going to be no more than 1 second, and more like to be in the range of 0.1 - 1.0 seconds. Is this possible? I know it really short of a time, but that is what i was told.
I open the file as:
CStdioFile f;
f.Open(Filename, CFile::modeNoTruncate | CFile::modeWrite);
f.WriteString(temp);
f.Close();
MANY MANY thanks.... I really appreciate this. I need to get this app done soon.
Jimmy
Just cause I am 15, doesn't mean I'm dumb! (I'll really be 4 on Feb. 29...the year 2004)
|
|
|
|
|
I assume you know how to connect and send data to the server 1 number at at time. Convert the user delay value into milliseconds. Then before your Send() function call Sleep(userTime).
Here is a link that talks about the accuracy of sleep:
http://www.codeproject.com/system/sleepstudy.asp[^]
I hope this answer is not too simplistic. I get the idea you want more but I am not sure what.
John
|
|
|
|
|
Currently I am using an overloaded function that uses a void pointer and the length of the pointer. However I am having an issue as the output cannot contain nulls and in a few cases it does. I need to strip/replace the nulls in the pointer so they don't show up in the output. I have included a brief snipit to give you an idea of what I am trying to do.
Current Code
note - openfile is CFile object
---------------------------------
FunctionX(void* buf, ASInt32 bufLen)
{
DURING
openfile.Write(buf, bufLen);
}
|
|
|
|
|
|
|
Your response was not entirely helpful or appreciated. I am not even sure what you meant by it. If you are trying to imply that I am missing something obvious please enlighten me.
I have had a crash course in C++ over the last 2 weeks and I believe the solution to be simple. I simply need to remove/replace on the nulls and output the remaining text to a file. I have no idea how to accomplish this from C++ when I am starting with a void pointer.
|
|
|
|
|
Brian Farrell wrote:
Your response was not entirely helpful...
Agreed. That attitude seems to be a common post from him/her.
Anyway, you could have something like:
FunctionX(void* buf, ASInt32 bufLen)
{
LPBYTE lp = (LPBYTE) buf,
b;
b = new BYTE[bufLen];
for (int y = 0, x = 0; y < bufLen; y++)
{
if ('\0' != *(lp + y))
b[x++] = *(lp + y);
}
openfile.Write(b, x);
delete [] b;
}
|
|
|
|
|
Thats exactly what I am looking for. Thank you.
|
|
|
|
|
Hello,
Just wondering if one of these ways is better than the other? And why?
char sTest[256];
lstrcpy(sTest,"testing");
CString strTest = sTest;
or
CString strTest;
strTest.Format("%s",sTest);
Thanks,
Rob
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
Huh ?
CString strText("Testing");
or did I missed something ?
Maximilien Lincourt
"Never underestimate the bandwidth of a station wagon filled with backup tapes." ("Computer Networks" by Andrew S Tannenbaum )
|
|
|
|
|
You have not missed anything That guy is clearly a nutjob.
|
|
|
|
|
Thanks, your post really helps. I love it when people are nice.
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
No problem. Stupid question deserves a stupid reply
|
|
|
|
|
Well, we'd rather have the stupid people making the stupid replies shut the f*ck up. Then once they become smart enough to realize that acting like an a**hole is stupid, their contributions will be more than welcome to those who need help.
Regards,
Alvaro
Hey! It compiles! Ship it.
|
|
|
|
|
I was just trying to make the question simple..
I have a structure that contains chars, int's etc...
I send the structure across a socket.. when it's received on the other side I I want to put the char (from the structure) into a CString. so my question was is it ok to to do a CString strTest = sTest or should I use the format function provided by CString?
I guess I just tried to over simplify the question...
Rob
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
The following two lines are equivalent:
<br />
std::string s1("one");
std::string s2 = "two";
If I recall correctly, there is a standard "short-cut" that compilers can (must?) take to make example 2 above work like example 1. In other words, declaration with assignment is optimised to a constructor provided that an appropriatly overloaded constructor exists. If no constructor, you get a compiler error.
Either would likely be faster then default constructor followed by Format() for two reasons. First, it's two steps. Second, Format() is probably slow with all that string parsing. Of course, YMMV.
Brad
|
|
|
|
|
will #2 generate a copy constructor ? or will it be converted into constructor ?
Maximilien Lincourt
"Never underestimate the bandwidth of a station wagon filled with backup tapes." ("Computer Networks" by Andrew S Tannenbaum )
|
|
|
|
|
|
Format() in this case is the worse choice of the two, because it's a bit harder to read. With the plain assignment, it's clearer what the code is doing. Format() also will run a bit slower because it has to parse the format string and the other arguments in order to calculate the length of the resulting string, although the slowness is nothing a person would even notice.
--Mike--
Ericahist | Homepage | RightClick-Encrypt | 1ClickPicGrabber
Ericahist updated Aug 30!
|
|
|
|
|
M. Dunn has the right response. If you are just assigning a simple string of characters to the CString object, using the assignment operator is the easiest. Employ the use of Format() only when variables/values need to be substituted.
|
|
|
|
|
Hello,
does anyone know how to customize the look of the CListCtrl RectTracker? I want it to look like the Windows XP Explorer RectTracker and still reuse a max of stuff already implemented in the standard RectTracker provided by CListCtrl (like dynamic selection and partial invalidates)?
Regards,
Nicolas
|
|
|
|