|
Are you talking about the ES_WANTRETURN style?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
And also see PreTranslateMessage .
|
|
|
|
|
Hi all,
I am trying to print size of my file in a list control using this code
int len = finder.GetLength();
char *len_str = new char;
sprintf(len_str,"%d",len);
m_Files.SetItemText(i,1,len_str);
but it gives this error
error C2664: 'CListCtrl::SetItemText' : cannot convert parameter 3 from 'char *' to 'LPCTSTR'
i am using VC-2005
can anybosy tell me how to resolve this problem
|
|
|
|
|
Don't use a char pointer but a TCHAR pointer (which is a macro that resolves to wchar if UNICODE is defined or to char if UNICODE is not defined). And use _stprintf instead of sprintf.
You also forgot to create an array of the correct size.
int len = finder.GetLength();
TCHAR *len_str = new TCHAR[len];
_stprintf(len_str,_T("%d"),len);
m_Files.SetItemText(i,1,len_str);
EDIT: don't forget to delete[] the buffer once you are done with it.
|
|
|
|
|
I think you should use swprintf instead of stprintf
dlfkgj lsdfkglfkgjlfgl jldfk fldkk jk
|
|
|
|
|
No, stprintf is a macro that resolves to sprintf if UNICODE is not declared or to swprintf if UNICODE is declared. So your code still compiles even if you change unicode settings.
|
|
|
|
|
Since len is apparently the length of a file, you won't need to allocate your buffer that big, but you will need enough characters to hold all the digits.
int len = finder.GetLength();
TCHAR *len_str = new TCHAR[(int)(log10(len) + 2)];
_stprintf(len_str,_T("%d"),(int)(log10(len) + 2));
m_Files.SetItemText(i,1,len_str);
delete[] len_str;
Hope that helps.
Karl - WK5M
PP-ASEL-IA (N43CS)
PGP Key: 0xDB02E193
PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193
|
|
|
|
|
Yes that's right, I didn't think too much before posting my reply .
But you should print the len in the string, not the number of characters
|
|
|
|
|
You're right about the len in the printed string - my turn to not think clearly about what he's doing!
Karl - WK5M
PP-ASEL-IA (N43CS)
PGP Key: 0xDB02E193
PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193
|
|
|
|
|
I understand the point, but maybe it would be nice to avoid both continuos allocation/deallocation of memory and use of the log10 . Simply allocate once a (relatively) big buffer on the stack.
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.
|
|
|
|
|
Well, perhaps that would be ok, but if the file size is large (2 GB) the new of a 2GB char array would probably fail, and you don't need anywhere near that many characters to hold a file size.
Perhaps a fixed buffer size of say [MAX_PATH_LEN] (which is 256) would be more than enough characters to hold any file size.
Karl - WK5M
PP-ASEL-IA (N43CS)
PGP Key: 0xDB02E193
PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193
|
|
|
|
|
krmed wrote: Well, perhaps that would be ok, but if the file size is large (2 GB) the new of a 2GB char array would probably fail, and you don't need anywhere near that many characters to hold a file size.
Of course the buffer can't be sized equal to file dimension, have you missed my aknowledge about your point?
That stated, my post completely agree with your bottom line:
krmed wrote: Perhaps a fixed buffer size of say [MAX_PATH_LEN] (which is 256) would be more than enough characters to hold any file size.
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.
|
|
|
|
|
Sorry if you thought I meant that all at you.
Actually, I was agreeing with the fixed size, but wanted the OP to realize that he probably can't new a char array the size of the file length (and it wouldn't be needed anyway).
I was simply suggesting that a fixed size (like you said) would work, and MAX_PATH_LEN would be more than enough - in fact 20 characters will hold more than ever needed.
Have a great day!
Karl - WK5M
PP-ASEL-IA (N43CS)
PGP Key: 0xDB02E193
PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193
|
|
|
|
|
neha.agarwal27 wrote: char *len_str = new char;
sprintf(len_str,"%d",len);
Since you are using MFC:
CString len_str;
len_str.Format("%d", len);
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
and in addition to DavidCrow's reply...
Since you're using MFC and a CString, which is a generic string type,
use generic literals as well...
CString len_str;
len_str.Format(_T("%d"), len);
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
You can assign your value to control with Set SetDlgItemInt and you dont need to other variables.
|
|
|
|
|
Hi all ,
i am trying to write a text file to a given location like c:\abc.txt
can anybody help me here..
Thanks in adavnce
vikas
|
|
|
|
|
What's the problem. See point 2 here[^]
|
|
|
|
|
i am just trying to write a text file to some specified path... that will contain some string data ....
as an example.. if i have a string "hii i am here in code project"
so this will be written there in the text file (text file will be created from code)
please help out me here
Thanks in advance
vikas
|
|
|
|
|
You can use of CFile class for read and write.
|
|
|
|
|
Thanks Hamid,
i think this is inbuild class but i want to do this by code just like...
1. create a text file
2.Open the file in read/write mode
3.append the text/write the text
4.close the file
thanks alot guys for help
vikas
|
|
|
|
|
tasumisra wrote: i think this is inbuild class
What ?
You can perfectly use CFile in your code, what's the problem ? Just look in MSDN how to use the class.
|
|
|
|
|
i dont want to use
class CFile : public CObject
BECAUSE
i am writing a COM component in that i need to put some log
so there i cant use CFILE may be it can be used there but i dont know..
so please help me in this context
Thanks...
vikas
|
|
|
|
|
Use a std::ofstream instead.
#include <fstream><br />
using namespace std;<br />
<br />
...<br />
...<br />
<br />
<br />
ofstream MyFile("Output.txt");<br />
MyFile << "Hello World" << endl;
|
|
|
|
|
Thanks for your help i ll check it..
vikas
|
|
|
|