从文件中读取以下的数据:
52 00 13 15 03 99 19 (从右向左拼)它代表日期1999-03-15 13:00:52 有什么好方法把读出来的数据转成CString "1999-03-15 13:00:52"?

解决方案 »

  1.   

    #include <afx.h>
    #include <iostream.h>void main()
    {
    CString str="52 00 13 15 03 99 19";
    CString result;
    result.Format("%s%s-%s-%s %s:%s:%s",
    str.Mid(18,2),
    str.Mid(15,2),
    str.Mid(12,2),
    str.Mid(9,2),
    str.Mid(6,2),
    str.Mid(3,2),
    str.Mid(0,2));
    cout<<result<<endl;
    }
    ---------------------------------------------------------------
    楼主不是不会,而是太懒^_^
      

  2.   

    楼上,要是lz说你这个还是太复杂了,你该怎么办?哈哈~~~lz,楼上方法清晰明了哈~~
      

  3.   

    #include <afx.h>
    这个头文件可以不用吧。
      

  4.   

    呵呵,可能我说的还不是很清楚。
    问题不象看起来那么简单:
    1.数据是直接从二进制文件中读出来的,所以取出来时是BYTE *类型。
    2. 取出来的数值等于16进制。要把16进制转换成十进制。我现在的做法是一个字节一个字节的取,然后再转换成10进制,如:取得BYTE *pTemp = 52,
    然后int nNum = *pTemp(这时nNum = 82); 然后转成10进制:nNum = i(int)nNum/16*10 + (int)nNum%16.这样就可以取回52了。但是这样做法很麻烦,所以在此请教一下好一点的方法。
      

  5.   

    呵呵,的确没说清楚。抱歉,昨天有点忙,没时间来回复!虽然已经结贴了,还是说说我的看法:
    int i=atoi((char*)pTemp);
    用atoi这个函数试试,不过如果pTemp中读出的是数字以外的东西的话就得不到正确结果了。