CFile Read读不到数据

(>^ω^<)喵上树 2014-06-10 11:15:55

void CMR_clientDlg::OnBnClickedFile()
{
CFileDialog dlg(TRUE);
CFile file;
CString file_path = "";
CString file_name = "";
ULONGLONG file_size = 0;
ULONGLONG endp = 0;
ULONGLONG total = 0;
UINT ret = 0;
int length = 0;
char info[1024] = {0};
char date[64 * 1024] = {0};
CString message = "";
if(dlg.DoModal() != TRUE)
{
return ;
}
file_path = dlg.GetPathName();
file_name = dlg.GetFileName();
if(file.Open(file_path, CFile::modeRead) == FALSE)
{
AfxMessageBox(_T("打开文件失败!"));
return ;
}
file_size = file.GetLength();
sprintf(info, "%llu%s", file_size, file_name.GetBuffer());
length = strlen(info);
info[length] = 'F';
info[length+1] = 'I';
info[length+2] = 'L';
info[length+3] = 'E';
length = strlen(info);
endp = file.SeekToEnd();

while(file.GetPosition() <= endp)
{
memset(date, 0, sizeof(date));
strncpy(date,info, length);
file.Read(date + length, file_size); // 这里为什么读不到文件数据???? 假如一个几十字节的文件

AfxMessageBox(date);
Sleep(100);
}
if(total == file_size)
{
message.Format(_T("文件名:%s\r\n文件大小:%d\r\n发送成功!"), file_name.GetBuffer(),file_size);
GetDlgItem(IDC_COMMOM_INFO)->SetWindowTextA(info);
}
}
...全文
176 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
(>^ω^<)喵上树 2014-06-10
  • 打赏
  • 举报
回复
嗯,感谢楼上两位,问题都解决了!!
招财猫_Martin 2014-06-10
  • 打赏
  • 举报
回复
这个控件有2个属情,一个是本身的大小,一个是显示列表的大小. 你进去界面控件编辑框看看,把显示列表的控件窗口拉拉大.
shen_wei 2014-06-10
  • 打赏
  • 举报
回复
CEdit 开启 Multiline 属性
(>^ω^<)喵上树 2014-06-10
  • 打赏
  • 举报
回复
使用的是多字节字符集。。 为什么不换行。。

str_mrdata.Format(_T("Reflex ip: %s\r\nReflex port: %d"),refex_addr, ntohs(pdata->refex_port));
GetDlgItem(IDC_MR_INFO)->SetWindowText(str_mrdata);



怎样做才能让它换行。。。
(>^ω^<)喵上树 2014-06-10
  • 打赏
  • 举报
回复
引用 3 楼 shen_wei 的回复:
m_Connect_Type 更改属性 drop list
属性修改里好像没有这样项 啊!!!
shen_wei 2014-06-10
  • 打赏
  • 举报
回复
m_Connect_Type 更改属性 drop list
(>^ω^<)喵上树 2014-06-10
  • 打赏
  • 举报
回复
引用 1 楼 VisualEleven 的回复:
endp = file.SeekToEnd();
接着调用
file.SeekToBegin(); ??

嗯,, 我知道了,文件指针被移到文件尾了,没有移回来。。
这里我点下拉框怎么没反应啊!!!!
比如 连接方式这个
代码这样的。。。。

m_Connect_Type.InsertString(0, "TCP连接");
m_Connect_Type.InsertString(1, "UDP连接");
m_Connect_Type.SetCurSel(0);
Eleven 2014-06-10
  • 打赏
  • 举报
回复
endp = file.SeekToEnd(); 接着调用 file.SeekToBegin(); ??

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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