程序的要求:1,从我的一个TXT文件内读取数据(包括:字符、字符串、十进制数、十六进制数、汉字、各类标点符号等等)显示出来。显示的格式(如行列空格符号等)都必须保证与我的TXT格式一样。2,数据可能会有一万行以上,所以我要在程序中能显示我的数据有几行几列。就以上两点,希望得到高手的指点!如果有参考代码的话请发我邮箱,[email protected]本人设计这个程序已有一个月了,就是达不到效果,急等各位的帮助,先谢谢各位!

解决方案 »

  1.   

    这个应该很简单吧,CDialog+CEdit控件
      

  2.   

    CDialog+CEdit控件,还有RICHEDIT控件我都试过了,不仅容量有限,并且显示出来与我的TXT文件格式都不一样
      

  3.   

    Editor :
    // otherwisw only 0xFFFFF=1048575 bytes can be show!
    GetEditCtrl().SetLimitText(0x00400000);
      

  4.   

    怎么个不一致
    你现在是怎么操作的
    如果想按记事本方式打开
    那用CStdioFile操作只要edit字体设成fixedsys那肯定是一样的
    因为记事本里就是一个edit
      

  5.   

    我的代码如下:
    CFileDialog ofDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*||");
    if (ofDlg.DoModal() != IDOK) return;
    strPath = ofDlg.GetPathName();

    strText = "";           //清空之前的内容并更新
    GetDlgItem(IDC_EDIT1)->SetDlgItemText(IDC_EDIT1,_T(""));
    UpdateData(FALSE);

    SetWindowText(strPath);
    FILE* fp = fopen(LPCTSTR(strPath), "r");
    char buf[256];
    while(fgets(buf, sizeof(buf), fp) != NULL)
    {
    for (int i=0; i<256; i++)
    {
    // 回车符转换为回车换行符
    if (buf[i] == 10 && buf[i-1] != 13)
    {
    buf[i] = 13;
    buf[i+1] = 10;
    buf[i+2] = 0;
    break;
    }
    }
    strText += buf;
    }
    fclose(fp);
    GetDlgItem(IDC_EDIT1)->SetWindowText(strText);
    UpdateData(TRUE);就是实现不了这两条:1,从我的一个TXT文件内读取数据(包括:字符、字符串、十进制数、十六进制数、汉字、各类标点符号等等)显示出来。显示的格式(如行列空格符号等)都必须保证与我的TXT格式一样(我不需要程序给我自动换行,一行有多长就显示多长)。2,数据可能会有一万行以上,所以我要在程序中能显示我的数据有几行几列的功能。以上还请高手帮忙呀,等着急用啊!
      

  6.   

    你又不是linux,加什么回车换行
      

  7.   

    小朋友,你可以考虑链表结构
    或者直接的内存映射大文件用DrawText直接显示数据就OK了
      

  8.   

    1 你的txt是用什么工具来看的,用的字体是什么
    2 设置一下字体就行了