5386|14

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

新手求助 EVC下将文件内容输出到编辑框程序问题 [复制链接]

想选择路径打开文件 将内容输出到编辑框 程序运行弹出一个对话框 显示叉号和乱码  
void CTCPClientExDlg::Sendfile()
{
   CFile MyFile;
   TCHAR str[100];
   DWORD count;
   UpdateData(true);
   CFileDialog FileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,_T("All Files(*.*)|*.*||"));
       if(FileDlg.DoModal()==IDOK)
        {
             m_FileName=FileDlg.GetPathName();
            MyFile.Open (_T("\\m_FileName"),CFile::modeRead);           //打开文件
             long sendlen =MyFile.GetLength() ;                        //得到文件长度
             count=MyFile.Read (str,sendlen);                                //读文件
            m_Content=str;                                                 //将文件内容输出到编辑框
            MyFile.Close ();                                        //关闭文件
            UpdateData(false);                                        //更新显示
            AfxMessageBox(_T("Read OK"));                                 //输出读成功消息
     
         }   
}
大家帮忙看看程序吧 新手求助

最新回复

测试OK了,可以参考一下   CFile MyFile;   CString m_FileName;   CFileDialog FileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,_T("All Files(*.*)|*.*||"));       if(FileDlg.DoModal()==IDOK) {                  m_FileName=FileDlg.GetPathName();                                  MyFile.Open (m_FileName,CFile::modeRead);  //打开文件                 DWORD sendlen =MyFile.GetLength() ; //得到文件长度                 CHAR *szBuf=new CHAR [sendlen];//开辟存储空间                 MyFile.Read ( szBuf,  sendlen); //读文件         m_Content.Format(_T("%S"),szBuf);                        //注意是大写的S                 MyFile.Close (); //关闭文件                 UpdateData(false); //更新编辑框显示                 AfxMessageBox(_T("Read OK")); //输出读成功消息         delete []szBuf;//清除存储空间 }   详情 回复 发表于 2009-11-24 17:53
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
帮忙顶贴!!!
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
建议楼主考虑一下编码的问题,在WinCE下显示必须是UNICODE编码。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
楼上能不能详细说说
我现在出来打开文件对话框 选择文件后就弹出一个对话框 显示叉号和乱码 我选择的是.dat文件 里面就几个字母而已
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
改用VS2005,很好用的
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 hpp6699 的回复:
改用VS2005,很好用的


工具改变不了这个问题的

主要是 Unicode的问题。因为文本通常是ANSI的,要CE下显示必须使用Unicode,需要调用字符转换函数。
具体的函数名不记得了,google一下就可以找到。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
但是我的开发板带的实例都是EVC的 我是拿开发板带的TCP/IP的例子改的 不仅要打开文件 主要是想传输的
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

8
 
MyFile.Open (_T("\\m_FileName"),CFile::modeRead);          //打开文件
要使用绝对路径
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

9
 
准备一段buf,如char szBuf[256];
将文件内容读取到szBuf中,
定义一个CString s;
s.Format(_T("%S"),szBuf);//注意是大写的S
显示s即可。
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 7 楼 cfanlwn 的回复:
MyFile.Open (_T("\\m_FileName"),CFile::modeRead);? ? ? ? ? //打开文件
要使用绝对路径
李MM 在wince下是要用绝对路径 现在我想的是选择一个文件代开 用绝对路径该怎么表示呢
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 8 楼 sunrain_hjb 的回复:
准备一段buf,如char szBuf[256];
将文件内容读取到szBuf中,
定义一个CString s;
s.Format(_T("%S"),szBuf);//注意是大写的S
显示s即可。
我把文件内容读取到szBuf中
szBuf=MyFile.Read (str,sendlen); 报错
error C2440: '=' : cannot convert from 'unsigned int' to 'unsigned short [256]'
错误看明白了 该怎么改呢
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

12
 
根据大家的意见 程序改成
void CTCPClientExDlg::OnSendfile()
{
        CFile MyFile;
        TCHAR str[100];
        DWORD count;
        CHAR  szBuf[256];
        UpdateData(true);
        CString s;
        MyFile.Open (_T("\\qwe.dat"),CFile::modeRead);
        //long sendlen =MyFile.GetLength() ;                     //得到文件长度
         count=MyFile.Read ( szBuf,   sizeof(szBuf));        //读文件
         s.Format(_T("%S"),szBuf);                        //注意是大写的S
        m_SendEdit=s;                                        //将文件内容输出到编辑框
        MyFile.Close ();                                //关闭文件
        UpdateData(false);                                //更新显示
        AfxMessageBox(_T("Read OK"));                        //输出读成功消息            
}
但是现在直接出来  Read OK  对话框 ,没有把文件内容输出到编辑框啊 大家帮忙看看
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(中级)

13
 
引用 9 楼 l840828 的回复:
引用 7 楼 cfanlwn 的回复:
MyFile.Open (_T("\\m_FileName"),CFile::modeRead);? ? ? ? ? //打开文件
要使用绝对路径
李MM 在wince下是要用绝对路径 现在我想的是选择一个文件代开 用绝对路径该怎么表示呢

你打开文件,这个文件也有路径啊,通过软件是可以得到它的路径的
void GetCurrentDirectory(CString &szPath)
{
wchar_t pBuf[256];
GetModuleFileName(NULL,pBuf,sizeof(pBuf)/sizeof(wchar_t));
szPath=pBuf;
szPath = szPath.Left(szPath.ReverseFind('\\')+1);
}
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 11 楼 l840828 的回复:
根据大家的意见 程序改成
void CTCPClientExDlg::OnSendfile()
{
        CFile MyFile;
        TCHAR str[100];
        DWORD count;
        CHAR? szBuf[256];
? ? ? ? UpdateData(true);
        CString s;
        MyFile.Open (_T("\\qwe.dat"),CFile::modeRead);
? ? ? ? //long sendlen =MyFile.GetLength() ;                ? ?  //得到文件长度
? ? ? ?  count=MyFile.Read ( szBuf,?  sizeof(szBuf));        //读文件
? ? ? ?  s.Format(_T("%S"),szBuf);? ? ? ? ? ? ? ? ? ? ? ? //注意是大写的S
? ? ? ? m_SendEdit=s;                                        //将文件内容输出到编辑框
        MyFile.Close ();                                //关闭文件
        UpdateData(false);                                //更新显示
        AfxMessageBox(_T("Read OK"));                ? ? ? ? //输出读成功消息
}
但是现在直接出来? Read OK? 对话框 ,没有把文件内容输出到编辑框啊 大家帮忙看看

我用你这样的方法 是可以把内容输出出来的啊  是不是你的编辑框在类向导中没有定义m_SendEdit
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(中级)

15
 
测试OK了,可以参考一下
  CFile MyFile;
  CString m_FileName;

  CFileDialog FileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,_T("All Files(*.*)|*.*||"));
     
if(FileDlg.DoModal()==IDOK)
{

                 m_FileName=FileDlg.GetPathName();
               
                 MyFile.Open (m_FileName,CFile::modeRead);  //打开文件

                DWORD sendlen =MyFile.GetLength() ; //得到文件长度
                CHAR *szBuf=new CHAR [sendlen];//开辟存储空间
                MyFile.Read ( szBuf,  sendlen); //读文件

        m_Content.Format(_T("%S"),szBuf);                        //注意是大写的S
                MyFile.Close (); //关闭文件
                UpdateData(false); //更新编辑框显示
                AfxMessageBox(_T("Read OK")); //输出读成功消息
        delete []szBuf;//清除存储空间

}
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表