文件保存的有关问题:保存的内容不对,有遗漏
文件保存的问题:保存的内容不对,有遗漏。
这是为什么啊?内容如下:
HANDLE hFile = CreateFile(_T( "C:\\MyFile.txt "),GENERIC_WRITE, FILE_SHARE_READ,NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
CFile file(hFile);
CString str;
GetDlgItem(IDC_EDIT1)-> GetWindowText(str);
str = CString( "*** ") + str;
file.Write( str,str.GetLength());
file.Close();
MFC的应用程序,基类是CFormView,生成的类是CExFileView
------解决方案--------------------
明白了,你的工程是Unicode版本,但CFile只支持MBCS版本(多字节版本),所以,有两种方案:
1.直接编译MBCS(预编译定义_MBCS)版本的工程,就可以解决.
2.改代码:
用WideCharToMultiByte转换unicode字符串到多字节字符串,然后用CFile写出.
------解决方案--------------------
我用你的代码试了 完全正确 不是这里的问题
------解决方案--------------------
str = CString( "*** ") + str;
估计是上面的语句不对,
char cc[256];
strcpy(cc, "*** ");
strcat(cc, str);
str = cc;
------解决方案--------------------
代码肯定没有问题,得出的答案也对,可能是和版本系统有关了
------解决方案--------------------
yjgx007(听妈妈的话,向两星挺进! http://www.geekclaw.com) ( )
支持
同时要去掉预定义里的unicode和_unicode
------解决方案--------------------
file.Write( str,str.GetLength());
改成:file.Write( str,str.GetLength()*sizeof(TCHAR));
------解决方案--------------------
项目配置的常规里面,字符集选择:使用多字节字符集。
或者使用kuron(宝抱) 的做法。
这是为什么啊?内容如下:
HANDLE hFile = CreateFile(_T( "C:\\MyFile.txt "),GENERIC_WRITE, FILE_SHARE_READ,NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
CFile file(hFile);
CString str;
GetDlgItem(IDC_EDIT1)-> GetWindowText(str);
str = CString( "*** ") + str;
file.Write( str,str.GetLength());
file.Close();
MFC的应用程序,基类是CFormView,生成的类是CExFileView
------解决方案--------------------
明白了,你的工程是Unicode版本,但CFile只支持MBCS版本(多字节版本),所以,有两种方案:
1.直接编译MBCS(预编译定义_MBCS)版本的工程,就可以解决.
2.改代码:
用WideCharToMultiByte转换unicode字符串到多字节字符串,然后用CFile写出.
------解决方案--------------------
我用你的代码试了 完全正确 不是这里的问题
------解决方案--------------------
str = CString( "*** ") + str;
估计是上面的语句不对,
char cc[256];
strcpy(cc, "*** ");
strcat(cc, str);
str = cc;
------解决方案--------------------
代码肯定没有问题,得出的答案也对,可能是和版本系统有关了
------解决方案--------------------
yjgx007(听妈妈的话,向两星挺进! http://www.geekclaw.com) ( )
支持
同时要去掉预定义里的unicode和_unicode
------解决方案--------------------
file.Write( str,str.GetLength());
改成:file.Write( str,str.GetLength()*sizeof(TCHAR));
------解决方案--------------------
项目配置的常规里面,字符集选择:使用多字节字符集。
或者使用kuron(宝抱) 的做法。