|
RobJones wrote: I thought about parsing the file line by line as I read it in but I don't see any line by line options in CFile.
try CStdioFile . it has line-based reading and writing.
Cleek | Image Toolkits | Thumbnail maker
|
|
|
|
|
for text files, use CStdIoFile, you can read one line at a time.
also, if the format for each line if fixed, why can't you use scanf ( or related or better function ) to parse one line in one pass ?
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
Maximilien wrote: also, if the format for each line if fixed, why can't you use scanf ( or related or better function ) to parse one line in one pass ?
While that is technically possible, checking for error is a real pain.
"Take only what you need and leave the land as you found it." - Native American Proverb
|
|
|
|
|
RobJones wrote: char cBuf[65536];
UINT uBytesRead;
// Continue reading until no more data is read
while(uBytesRead = file.Read(cBuf, sizeof(cBuf)-1))
{
// Null terminate after the last charcter
cBuf[uBytesRead] = NULL;
// Add the buffer to the mapped CString
strData += CString(cBuf);
}
// Close the file
file.Close();
If the file is several MB in size, you could save a few steps by reading the file once rather than in 64KB chunks.
DWORD dwLength = file.GetLength();
char *cBuf = new char[dwLength];
DWORD dwBytesRead = file.Read(cBuf, dwLength);
file.Close(); RobJones wrote: // Split up the data per line
nEndLine = strData.Find(_T("\r\n"), 0);
if(nEndLine > 0)
{
CString strLine = strData.Mid(0, nEndLine);
If you are processing the file line-by-line, why not use CStdioFile instead?
In the last while loop, you appear to be doing a lot of operations on strLine . This might account for some of the sluggishness.
"Take only what you need and leave the land as you found it." - Native American Proverb
|
|
|
|
|
Thanks for all your suggestions.. I'm going to switch to CStdioFile instead and im going to look up scanf..
Thanks again,
Rob
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
I am using MCI to play incoming mp3 data in an online radio app... the data is stored in two temp files and MCI switches between these two files for audio playback ... but there is considerable delay for MCI_OPEN for the two files ... almost of a second.. so the playback is not continous... how to reduce this delay while switching? -
|
|
|
|
|
If the destructor is also pure virtual, all member functions are pure virtual, and there is no member variable.
The problem is that a pure destructor need a impementation also, then I need a new cpp file only to meet this need. Any better way?
|
|
|
|
|
|
|
|
It doesn't help when I include the header file in different cpp files.
|
|
|
|
|
Hi!
I'm running WinXP w. VS 2005 Beta 2. And I'm trying to build my C++ MFC project from the command line.
I searched on msdn how to do this in VS 2005 ( in VS 6 I just made an .mak file and did nmake ) and the suggested method seemed to be by using msbuild. Now this seems to be a good thing but whenever I try to build my project with:
msbuild mysol.sln
this gives me warning: MSB4098 that means that project-to-project dependencies don't work. but this is not an issue since I only have one project. But msbuild doesn't compile the sources correctly it seems that the build order is all messed up since it's complaining about missing base classes.
I've also tried:
devenv mysol.sln /build "Win32|Release"
That basically gives me the same errors as msbuild does.
I really need to build my projects from the command line! Is there an easy solution for this ( I'm just doing it wrong perhaps ) or is this a bug in VS 2005 beta 2?
cheers
|
|
|
|
|
Hi all!
I want to load data from excel (similar to access),but I don't know the way to do it.Can you help me about my problem
Thank alot!
Thanhk alot
|
|
|
|
|
Search for 'Excel automation'. Google is your friend[^]
|
|
|
|
|
In addition to automation, you can also use ODBC.
"Take only what you need and leave the land as you found it." - Native American Proverb
|
|
|
|
|
hoanhdung wrote: I want to load data from excel (similar to access),
In addition to the other methods suggested you could also use ADO to connect to the excel document as data source.
Hope this helps!
DEBUGGING : Removing the needles from the haystack.
|
|
|
|
|
Hi everyone,
I was not sure which forum this question really belongs to. However, here goes....
I have a program running under Windows XP that communicates with a hardware device through the parallel port. Now what I want to do is write a program that can read/write messages to that port (basically remove the hardware physically and simulate it through software). However, in documentation I read that the COM port is always opened with an exclusive access. Does anyone know if there is a way to bypass that or maybe I have interpreted the documentation in a wrong way.
Cheers!
/**
I'm the one who's gonna have to die
When it's time for me to die
So let me live my life
The way I want to
- Jimi Hendrix
*/
|
|
|
|
|
Dear All...
I have problems in avoiding memory leak. I've browsed through the message board regarding memory leak, but still can not find solution.
I have this function:
void CPA003Dlg::doMultiplyT(double **A, int M)<br />
{<br />
double temp_Sum = 0;<br />
double **B;<br />
B = new double *[M];<br />
for (int x=0;x<M;x++) B[x] = new double [2];<br />
for (x=0;x<M;x++) {<br />
B[x][0] = A[0][M];<br />
B[x][1] = A[1][M];<br />
}<br />
<br />
for (x=0; x<2; x++) {<br />
for (int y=0; y<2; y++) {<br />
for (int z=0; z<M; z++) {<br />
temp_Sum += (A[x][z]*B[z][y]);<br />
}<br />
P[x][y] = temp_Sum;<br />
temp_Sum = 0;<br />
}<br />
}<br />
<br />
delete []B;<br />
B = NULL;<br />
<br />
}
what should I do?
thanks...
|
|
|
|
|
houari_id wrote: for (int x=0;x for (x=0;x B[x][0] = A[0][M];
B[x][1] = A[1][M];
}
houari_id wrote: for (int z=0; z temp_Sum += (A[x][z]*B[z][y]);
}
i guess this is not what you wanted to type...
so, use the little [Modify] link at the botton of your post and there, uncheck the Ignore HTML tags in this message checkbox...
thanks
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
Mmmhhh, forgot to uncheck the 'Ignore HTML tags' ?
|
|
|
|
|
arf, nop
actually, when a Copied/pasted the checkbox caption, i did not see that i checked it...
and as CP is so slow some times, you answered before i had the time to uncheck it
but it's fixed now
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
ah... i guess so... ^^;;;
sorry..
|
|
|
|
|
houari_id wrote: what should I do?
Your use of a 2D array is incorrect. Try:
double **B = new double*[FirstDimension];
for (int x = 0; x < FirstDimension; x++)
{
B[x] = new double[SecondDimension];
for (int y = 0; y < SecondDimension; y++)
{
B[x][y] = 0.0;
}
}
...
for (x = 0; x < FirstDimension; x++)
delete [] B[x];
delete [] B;
"Take only what you need and leave the land as you found it." - Native American Proverb
|
|
|
|
|
Ah!! It worked!! Thank you very much...
|
|
|
|
|
hello,
i am very new to VC++.Net. i am getting lots of bugs while working with
MsAccess Database. Here is my code fragment. i used the Connection
object from toolbox. so the connection is ok. i am able to retrieve the
data. But i failed to modify (inserting, updating and deleting).
DataSet *ds;
OleDb::OleDbDataAdapter* adapter=new OleDb::OleDbDataAdapter("select
prt_text,cut from spool",oleDbConnection1);
oleDbConnection1->Open();
adapter->Fill(ds,"spool");
DataRow *dr=ds->Tables->Item[0]->Rows->get_Item(1);
ds->Tables->Item[0]->Rows->Remove(dr);
ds->AcceptChanges();
adapter->Update(ds,"spool");
oleDbConnection1->Close();
how do i delete a record, update a record and add a record. plz help
me.
Thank u in advance.
regards,
basheer.
|
|
|
|