请教用对话框做一个记事本

foxxu 2008-06-23 09:46:13
pda上向用一个对话框做个类似的记事本功能
我的对话框里一个edit控件绑定cstring变量m_strData
edit可换行输入文字、数字
保存出来成一个.txt文件
可是老不对
文本打开数据都乱码了
代码:
void CDlgNoteBook::Save(CString csFilePath)
{
CFile file;
if(!file.Open(csFilePath,CFile::modeCreate|CFile::modeWrite))
{
MessageBox(_T("文件创建错误!"));
return;
}
//写入数据
int strSize = m_strData.GetLength();
WCHAR* wbuf = new WCHAR[strSize];
memset(wbuf,0,strSize);
wcscpy(wbuf,m_strData.GetBuffer());
file.Write(cbuf,strSize);
file.Close();
delete []wbuf;
}

void CDlgNoteBook::Show(CString csFilePath)
{
CFile file;
if(!file.Open(csFilePath,CFile::modeRead))
{
MessageBox(_T("没有文件,读取失败!"));
return;
}

int filesize = file.GetLength();
//WCHAR* buf = new WCHAR[filesize];
char *buf = new char[filesize];
memset(buf,0,filesize);//初始化内存,防止读出字符末尾出现乱码
file.Read(buf,filesize);
file.Close();
m_strData=buf;//给文本框赋值
delete buf;
}

我现在是pc是一个txt文件可以用Show函数正确显示
但是Save函数保存的数据不正常,不能用Show正确显示,也不能在pc上用记事本正确显示,乱码
请谁帮忙改下Save函数
...全文
63 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
foxxu 2008-06-25
  • 打赏
  • 举报
回复
CString 是什么字符集的啊
oh_my_god 2008-06-25
  • 打赏
  • 举报
回复
CString 在Mobile下是unioncode字符集。你如果写的TXT文件在PC上要正确显示
Mobile 写文件 字符串转换为Ansi,mobile读文件,将Ansi转换未unioncode
btsy2000 2008-06-24
  • 打赏
  • 举报
回复
用wcsncpy会比wcscpy好
还有保存的时候用unicode字符集,在文件里面不会是乱码
foxxu 2008-06-24
  • 打赏
  • 举报
回复
不大会啊
还是出错
jinhaijian 2008-06-23
  • 打赏
  • 举报
回复
把Unicode编码转为multi char.
WideCharToMultiByte
foxxu 2008-06-23
  • 打赏
  • 举报
回复
感觉是CString字符处理的问题
怎么把这串CString字符串保存到txt文件
单字节?汉字双字节?
char wchar ?
请指点一下
foxxu 2008-06-23
  • 打赏
  • 举报
回复
我现在是pc里的一个txt文件拷贝到pda可以用Show函数正确显示
但是Save函数保存的数据不正常,不能用Show正确显示,也不能拷出到pc上用记事本正确显示,乱码
请谁帮忙改下Save函数,Show函数...

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧