|
Hi,
I hanve a ini file with the UNICODE entries like chinese characters, i need to read the values and write it back to ini file. How can i read and write the unicode strings from and to INi file.
Thanks in advance
----------------------------
KRISHNA KUMAR T M
|
|
|
|
|
I tried withe GetPrivateProfileStringW, which is not reading properly.
----------------------------
KRISHNA KUMAR T M
|
|
|
|
|
Is the ini file mixed with ANSI and UNICODE?
Then, if UNICODE means UTF-8, it may be solved by MultiByteToWideChar and WideCharToMultiByte , I think.
When UNICODE means UTF-16, I dont have any good idea, sorry.
If the ini file is all UTF-16 encoding with BOM, GetPrivateProfileStringW and WritePrivateProfileStringW could not help you?
|
|
|
|
|
Yes the Ini file is the mixture of ANSI and UNICODE.
The file format is also in the UTF-8.
How the MultiByteWideChar will help, is this is th way?
1.Use GetPrivatePrfileString.
2.Convert the buffer using WideCharToMultiByte.
----------------------------
KRISHNA KUMAR T M
|
|
|
|
|
char szUtf8[LINE_SIZE];
int n = GetPrivatePrivateStringA("section", "key", "", szUtf8, LINE_SIZE, "inifile.ini");
DWORD flags = 0;
int n2 = MultiByteToWideChar(CP_UTF8, flags, szUtf8, -1, NULL, 0);
MultiByteToWideChar(CP_UTF8, flags, szUtf8, -1, pUtf16, n2);
Above code can work? (I did not check this with real code yet) Good luck 
|
|
|
|
|
HI i am using a flexgrid which is having one column editable .
How to implement copy and paste functionality to this editable column .
Also how to check the copied string , if it contains any spaces in between i dont have to paste it .
Please provide your comments
|
|
|
|
|
You can show a cut/paste menu reacting to the OnMouseDown event. The message handler has a parameter "short Button" =1 for Left button =2 for right button. You can get the range of selected cells with GetCol() GetRow() GetCellSel() GetRowSel() The two first gives you a corner of selected cells and the two last gives you the opposite corner. You only need to call GetTextMatrix in order to obtain the cell's text and store them in some structure or array or the clipboard. To paste you only have to follow the inverse procedure. I hope this can help you
Source: CodeGuru
|
|
|
|
|
Thanks a lot ...i will try this
|
|
|
|
|
Hi All,
I am stucked into a problem of writing into C: drive(OS)in vista. I need to edit something in the metadata of a file. Well I can do this with other volumes but not in C: . Please guide me how to overcome this problem? 
|
|
|
|
|
Did you check the return code of GetLastError()?
|
|
|
|
|
Are you doing it programaticaly.
If so your program will need elevated privileges.
«_Superman_»
I love work. It gives me something to do between weekends.
|
|
|
|
|
yA i DID EVERY THING.
eRROR CODE 5 : aCCESS IS DENIED.
And the code I am running with admin priviledge.
This problem is only with the OS drive not with other partitions.
|
|
|
|
|
i guess you exe hasnt the rights to write in such location. Do writing in a user directory. ->GetFolderPath()
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
Where exactly is the file you're trying to write to? Do you have privileges to write to the file?
|
|
|
|
|
If you understand the metadata area of a file($MFT area)of a particular file , that is the location where I have to modify some values of a OS drive. But windows is not giving me permission to write at low level.
|
|
|
|
|
Hi every body
is there any way to save image form webBrowser control with out reloading it?
|
|
|
|
|
Hi,
Please have a look
std::vector<cstring> Names;
ENUMLOGFONTEX *lpelfe;
Names.push_back(lpelfe->elfFullName);
the above lines gives an error like....
error C2440: 'initializing' : cannot convert from 'BYTE [64]' to 'ATL::CStringT<BaseType,StringTraits>'with[BaseType=char, StringTraits=StrTraitMFC_DLL<char>] ]
and please try to help regarding the same...
|
|
|
|
|
What type of data do you want to push to std::vector?
If you want CString, try
std::vector<CString*> Names;
Names.push_back(new CString(lpelfe->elfFullName));
or you do with BYTE[], try
std::vector<BYTE*> Names;
BYTE* aName = new BYTE[sizeof(lpelfe->elfFullName)];
memcpy(aName, lpelfe->elfFullName, sizeof(lpelfe->elfFullName);
Names.push_back(aName);
Do not forget delete elements after you dont need vector both above.
|
|
|
|
|
disapeared template defs.
first one is
std::vector<CString*> Names;
second one is
std::vector<BYTE*> Names;
|
|
|
|
|
I think , first Option should work.
Bcoz while creating CString from Byte , you should say new() to it..
It's not enough to be the best, when you have capability to be great...
|
|
|
|
|
Your vector declaration cannot be seen in your posting.
Is it declared std::vector<CString> ?
«_Superman_»
I love work. It gives me something to do between weekends.
|
|
|
|
|
|
Try a two step approach.
std::vector<CString> Names;
ENUMLOGFONTEX *lpelfe;
CString str = lpelfe->elfFullName;
Names.push_back(str);
«_Superman_»
I love work. It gives me something to do between weekends.
|
|
|
|
|
Can't you just use CString if you are already using MFC? Why do you have to use the std containers?!
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|