|
Hi Kaushik,
The basic rule is,
1. If the file is in the same directory where you run you exe then only filename is enough.
2. If the file exist in different directory, then you need to provide the full filepath for opening it.
Hope it clears your doubt.
Regards,
Jijo.
________________________________
Yesterday is history,
Tomorrow is a mystery,
But today is a present.
|
|
|
|
|
First of all thanks for suggestion.
friend i am unable to copy file in to folder. I can save the file name in to database . ( My file will be always from outside the current folder so i use file path )
can you suggest me how can do this
Regard's
Kaushik
|
|
|
|
|
Y_Kaushik wrote: can you suggest me how can do this
file.Open( "c:\\temp\\Myfile.txt", CFile::modeRead);
|
|
|
|
|
Y_Kaushik wrote: When i run this program an assertion occur
What line of what file is asserting?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
This line is asserting
cfile_object.Open("zetaproducer.txt", CFile::modeRead);
here zetaproducer.txt is name of file
Regard's
Kaushik
|
|
|
|
|
Y_Kaushik wrote: This line is asserting
cfile_object.Open("zetaproducer.txt", CFile::modeRead);
Not possible, since there is no ASSERT() statement on that line.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
From the docs: "One access permission and one share option are required"
Maybe try
cfile_object.Open("zetaproducer.txt", CFile::modeRead | CFile::shareDenyWrite);
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
When i used this code
cfile_object.Open("zetaproducer.txt", CFile::modeRead | CFile::shareDenyWrite);
cfile_object.ReadString(strLine);
buffer += strLine + "\r\n";
text->SetWindowText( buffer );
MessageBox(buffer););
An blank MessageBox Show . Mense data can not be read.
Although my actual requirment is to save file in a folder suppose folder name is DOCFile in same folder ( In which my project)
I am not Understang where i am making Wrong
Regard's
Kaushik
|
|
|
|
|
Is cfile_object a CStdioFile object? If so you could also add the CFile::typeText flag, although
if you don't specify CFile::typeBinary, CFile::typeText is the default.
For your requirement, you'll need to specify the full pathname of the file:
cfile_object.Open("driveletter:\\path\\DOCFile\zetaproducer.txt", CFile::modeRead | CFile::shareDenyWrite);
Also make sure Open() returns TRUE before trying to read from the file.
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
Where you got Assertion occur?
|
|
|
|
|
When i am writing this code for reading contant of File from disk
cfile_object.Open("zetaproducer.txt", CFile::modeRead | CFile::shareDenyWrite);
cfile_object.ReadString(strLine);
buffer += strLine + "\r\n";
text->SetWindowText( buffer );
MessageBox(buffer);
An blank MessageBox Show . Mense data can not be read.
Although my actual requirment is to save file in a folder suppose folder name is DOCFile in same folder ( In which my project)
I am not Understang where i am making Wrong
Regard's
Kaushik
Regard's
Kaushik
|
|
|
|
|
I am running your code and it reads first line of file and shows this value on the a messageBox of course on your code needs to path of file did you try with path
and for second part of your question do you wan to copy this file to other place?
|
|
|
|
|
Hello all,
i am trying to extract the html code of a url. I have written this code
CString str;
GetDlgItemText(IDC_EDIT1,str);
DWORD dwLen = _MAX_PATH;
CString sCompareURL;
InternetCanonicalizeUrl(str,sCompareURL.GetBufferSetLength(_MAX_PATH),&dwLen,ICU_BROWSER_MODE);
HINTERNET Ihandle = InternetOpen("Browser", INTERNET_OPEN_TYPE_PRECONFIG,
NULL, NULL, INTERNET_FLAG_ASYNC);
HINTERNET hFile = InternetOpenUrl(Ihandle,str,NULL,0,0,0);
while(true)
{
const int MAX_BUFFER_SIZE = 65536;
unsigned long nSize = 0;
char szBuffer[MAX_BUFFER_SIZE+1];
BOOL bRet = InternetReadFile(hFile, szBuffer, MAX_BUFFER_SIZE, &nSize);
if(!bRet || nSize <= 0)
break;
szBuffer[nSize] = '\0';
}
but i m getting null in my hFile handle.
is there something wrong in my code. how could i modify my code.
can anybody help me in this
thanks in advance....
|
|
|
|
|
Hi,
May be due to "InternetOpen" must be the first function, but here its not.
What the GetLastError and InternetGetLastResponseInfo says after InternetOpenUrl.
|
|
|
|
|
GetLastError() returns 2 for some site but for some site it works fi9...
how to resolve this problem.....
|
|
|
|
|
GetLastError() 2;ERROR_FILE_NOT_FOUND is the error value,
This works for some site means you get the Handle right?
Then It should be "File not found", html file doesnot exist.
|
|
|
|
|
Hi neha,
The problem may be due to INTERNET_FLAG_ASYNC of InternetOpen(). Remove the flag and try. The code snippet will be as follows,
HINTERNET Ihandle = InternetOpen( "Browser",<br />
INTERNET_OPEN_TYPE_PRECONFIG,<br />
NULL, <br />
NULL, <br />
NULL);
Regards,
Jijo.
________________________________
Yesterday is history,
Tomorrow is a mystery,
But today is a present.
|
|
|
|
|
no it doen't make a difference....
|
|
|
|
|
I tried your code snippet in my machine, and it works when i changed so. Thats why suggested that. Please recheck.
________________________________
Yesterday is history,
Tomorrow is a mystery,
But today is a present.
|
|
|
|
|
Why are you ignoring the return value from both InternetOpen() and InternetOpenUrl() ? If either of those fail, stop and figure out why. Use GetLastError() for this.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
I Used Nonoverlapped I/O Serial Communications Because Of Converting to WIN CE
<br />
OpenPort()<br />
{<br />
m_hCOM = ::CreateFile( m_szCOMPort, GENERIC_READ | GENERIC_WRITE, <br />
0, NULL, OPEN_ALWAYS, NULL, <br />
NULL);<br />
<br />
...<br />
...<br />
...<br />
<br />
m_hThread = ::CreateThread(NULL, 0, ThreadRcv, this, 0, &dwThreadID);<br />
}<br />
When A COM PORT is opened I created A Thread For Receving Response Data
<br />
DWORD WINAPI CSerialComm::ThreadRcv(void* arg)<br />
{<br />
CSerialComm *pCom = (CSerialComm*)(arg);<br />
<br />
if ( !SetCommMask(pCom->m_hCOM, EV_RXCHAR) )<br />
return 0;<br />
while( pCom->m_bConnected == TRUE )<br />
{<br />
if ( WaitCommEvent(pCom->m_hCOM, &dwRcvEvent, NULL) )<br />
{<br />
.......<br />
}<br />
}<br />
....<br />
<br />
return 0;<br />
}<br />
But While ThreadRcv is running( Blocked WaitCommEvent Func ), Any attempt to send Data To COM
PORT doesn't work. ( Blocked In WriteFile(...) )
HELP ME~ plz
|
|
|
|
|
sungtany wrote: But While ThreadRcv is running( Blocked WaitCommEvent Func ), Any attempt to send Data To COM PORT doesn't work. ( Blocked In WriteFile(...) )
Of course, since you're not using overlapped I/O.
If you don't use overlapped I/O the driver only handles one IRP at a time, which means e.g. that a write operation will block while waiting for a read operation to timeout.
In this case it is essential that you set the COMMTIMEOUTS to make a read operation timeout within a time frame that suits your needs.
I would try the following:
Spawn a worker thread that read data from queue containing data to be sent.
The worker thread would examine the queue if it contains data it would be sent.
Issue a read operation that will eventually time out, the read data should be put in a queue containing received data and the main thread should be notified with a user defined message that some data has been received. Then the main thread can extract the read data from the queue and do whatever needs to be done with the data.
"It's supposed to be hard, otherwise anybody could do it!" - selfquote "High speed never compensates for wrong direction!" - unknown
|
|
|
|
|
Thanks I'll try your comments
|
|
|
|
|
How do I convert _tcscpy to _tcscpy_s in Visual Studio 2005. i need to do this to remove the warnings.
|
|
|
|
|
You could use "Find Replace" utility.
Q. Or do you want to suppress the warning ?
A. For suppressing the warning you could use
#pragma warning(disable: WarningNumber)
Regards,
Paresh.
|
|
|
|