|
|
Hello all. I am having a very hard time parsing a string that i am reading from a line. I have been working on it since 2 days ago and can not get it right...Here is my code. If anyone could take the time and see what my problem is, it would take alot of discomfort and stress from my shoulders.
Here is my function where i am reading from a file, which seems to be working fine. buff is a local variable that i have initialized as follows
char buff[256];
//reading a file
void CTimeTrackerDlg::ReadLine()
{
ismanager = false;
while( !m_sfile.eof() ) {
m_sfile.getline( buff, 256 );
parse_string();
}
m_sfile.close();
fileopen = false;
}
Now here is where i parse the string. I tried this code in a consoule application which seems to be working, but as soon as i place it in my program, MFC, dialog application, it seems not to work.
void CTimeTrackerDlg::parse_string( )
{
char temp[256];
strcpy(temp,buff);
MessageBox(temp,"temp");
CString p,n;
char * pch;
pch = strtok (temp," ");
int count = 0;
while (pch != NULL)
{
if(count == 0)
{
p = pch;
count++;
}
else
{
n = pch;
}
pch = strtok (NULL, " ,.");
MessageBox(p,"password");
MessageBox(n,"name");
}
}
Agan, any help or solutions would be greatly appricated
none
|
|
|
|
|
Example.
/* strtok example */
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] ="This is a sample string,just testing.";
char * pch;
printf ("Splitting string \"%s\" in tokens:\n",str);
pch = strtok (str," ");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ,.");
}
return 0;
}
Output:
Splitting string "This is a sample string,just testing." in tokens:
This
is
a
sample
string
just
testing
Also in "getline (char* s, streamsize n );" streamsize n mean Characters are extracted until either (n - 1) characters have been extracted.
Good luck.
|
|
|
|
|
modeonetwo wrote:
m_sfile.getline( buff, 256 );
Using hard-coded numbers in this fashion is just asking for trouble. Yours is a mild example, but imagine the troubles you'd have if the size of that buffer needed to change. You'd need to find all references to it. Use the sizeof() operator instead.
modeonetwo wrote:
...it seems not to work
Which means?
What exactly are you tring to do? What is the format of the file that is being read? Mixing CString , char* , strtok() , etc makes me dizzy. That's way more than work than is necessary.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Awile ago, I had asked how to read the binary off of a CD. Alexander said that I would have to use an "IOCTL" (Thanks for your reply Alexander). Sorry, I am still quite new to MFC... What exactly is an IOCTL? Alexander said that the IOCTL to use is IOCTL_CDROM_RAW_READ. I think I have it defined in a header file called ntddcdrm.h. IOCTL_CDROM_RAW_READ is not a function, so I am assuming I need to use it in a function or something? If anyone could help me out, that would be great. Any help is apprectiated.
-Dev578
|
|
|
|
|
Search this forum for a post by longdafeng on 16-Feb. He includes a code snippet on how IOCTL_CDROM_RAW_READ is used with DeviceIoControl() .
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Hi all;
I am currently working on an application aimed at being a learning tool. Well, i'm sort of behind schedule and i need a quick means to render my project using an XP button and menu style. Can somebody please help me in finding the "magic" classes and on how to use them?
Thank you
Regards;
Krugger
|
|
|
|
|
There's a number of companies that sell that sort of stuff. If it was widely, freely available, they wouldn't have a market, so I reckon you'll need to open your chequebook. I worked briefly for one years ago, but I can't remember the name. They advertise here on CP though.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
I use Prof-UIS in Surfulater (see sig). There is an article here on CP and of course there Web site www.prof-uis.com[^] which has lots of demos etc.
Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
|
|
|
|
|
Use a manifest style to do this
Check this thread http://www.codeguru.com/forum/showthread.php?threadid=282858
|
|
|
|
|
Hello,
Homecome I dont see XP style buttons (i.e. XP visual style) when using a
local CHtmlview in an MFC app in both VC6 and VC7. I'm using a standard
manifest and DO have XP look in my app, but just not in the html-view...
What I'm I doing wrong ?? Thanks alot for any reply !
- KarmaFX
|
|
|
|
|
I assume you are talking about buttons in the html itself. You could try adding: <META HTTP-EQUIV="MSThemeCompatible" CONTENT="Yes"> after the <head>
Neville Franks, Author of ED for Windows <a href="http://www.getsoft.com">www.getsoft.com</a> and coming soon: Surfulater <a href="http://www.surfulater.com">www.surfulater.com</a>
|
|
|
|
|
hmm...seems I fixed it by adding this to the top of my html code:
- KarmaFX
|
|
|
|
|
|
Thanks Neville,
for some reason your post didn't appear until after I posted mine
But thanks for the tip!! It works great.... However I'm still thinking this isn't
the "correct" way of solving it since I cannot browse internet pages that
dont contain that line (e.g. www.google.com).
But these pages still use visual styles in internet explorer?!
anyway...I dont need it...just curious?!
- KarmaFX
|
|
|
|
|
Do you know an easy way to change the caption gradient colors to others programatically?
Do you know an already done class?
Best Regards
Doc
|
|
|
|
|
Look at this article.
Robert-Antonio
"Science is a differerntial equation.
Religion is a boundary condition."
|
|
|
|
|
Greetings:
First time (and most definetly not the last time) posting. I did spend about fifteen minutes trying to find a discussion about this with no luck so here it is:
New to Programming and am using Visual Studio's C++ and Deitel's 'how to program C++ .NET' to learn. I have come to a cross roads, here is my dilema:
I am trying to write a 2D int __gc array[,] to a .txt file. The context is that I have written a simulation (for Diffusion) and need to save the simulation save every nth time steps to a text file (n = 1 == file0001.txt). I have tried multiple techniques with no success, I am not sure if it is best to write a class specifically for saving 2D arrays (where I pass the filename and a pointer to the array), if I need to convert the int array to a string before saving. Like everyone I am under a time line otherwise I would continue to systemattically try new approaches until I was successful. File access has been completely new, with in the last week so even simple calls like how to open and close the file would be appreciated. I am unsure on File::Open or FileMode::OpenOrCreate, FileAcess::Write?? and when to use Serializable versus BinaryFormatter. I hope this is enough information to show my level of competence and issue without over embellishing.
Many thanks
Nick
naddock@hotmail.com
|
|
|
|
|
To output the array as one big lump of data, try:
int n2DArray[5][6];
CFile file(..., CFile::modeWrite);
file.Write(n2DArray, sizeof(n2DArray));
file.Close(); Or if you want to output the numbers in a formatted manner, try:
int n2DArray[5][6];
CStdioFile file(..., CFile::modeWrite);
for (int x = 0; x < 5; x++)
{
for (int y = 0; y < 6; y++)
{
CString str;
str.Format("%d ", n2DArray[x][y]);
file.Write(str, str.Length());
}
}
file.Close(); There's probably a few other ways of doing this, too.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Hi
Can anyone help me. I have a large project that I have compiled many times before no problem but today it is suddenly throwing all sorts of errors. They appear to be connected to the standard C++ library. One of the errors is:
error C2678: binary '<<' : no operator defined which takes a left-hand operand of type 'class std::basic_ofstream<char,struct std::char_traits<char=""> >' (or there is no acceptable conversion)
This is thrown on trying to compile the following code
void C3DPoint::Save(ofstream & s)
{
s << x <<" " << y << " " << z << endl;
}
where the header file has the following includes
#include <iostream>
#include <fstream>
using namespace std;
class C3DPoint : public CObject
{
DECLARE_DYNCREATE(C3DPoint)
public:
.
.
.
. int x;
int y;
int z;
.
.
.
};
Does anyone know the reason for these types of errors.
Many thanks in advance for any help.
Andrew Hoole
|
|
|
|
|
It is very difficult to comment as your code sample isn't showing < >. You should select code you post and use the pre and code and < > Formatting options below the edit area.
Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
|
|
|
|
|
Oops. Sorry about that. Let me try again.
Error message was
error C2678: binary '<<' : no operator defined which takes a left-hand operand of type 'class std::basic_ofstream<char,struct std::char_traits<char> >' (or there is no acceptable conversion)
Thrown by code
void C3DPoint::Save(ofstream & s)
{
s << x <<" " << y << " " << z << endl;
}
With header
#include <iostream>
#include <fstream>
using namespace std;
class C3DPoint : public CObject
{
DECLARE_DYNCREATE(C3DPoint)
public:
.
.
.
.
int x;
int y;
int z;
.
.
.
};
Another error in a different source file is
error C2079: 'file' uses undefined class 'basic_ifstream<char,struct std::char_traits<char> >'
associated with code line
ifstream file(dlg.GetPathName(),ios::in);
Many thanks for any help.
Andrew Hoole
|
|
|
|
|
Hello, when calling ReadDirectoryChangesW from a worker thread in DLL I get the following error:
FileMonDlg.cpp(254) : error C2065: 'ReadDirectoryChangesW' : undeclared identifier
Any ideas why this occures?
Thanks.
|
|
|
|
|
Perhaps a Unicode/MBCS issue? Check your project settings. (It's only available for Unicode builds).
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
How to set up a unicode build?
|
|
|
|