你用的是日期型的还是string型的。没听明白。
如果用的是日期型的,那么分解;decodedate
如果用的是字符串,那么用copy 函数取下来相应的字符,然后用stringtoint转成int型的。

解决方案 »

  1.   

    谢谢。我已经用
    DecodeDate(Present, Year, Month,Day);
      DecodeTime(Present, Hour, Min, Sec, MSec);分解了,如果把它直接赋给
    buf[],输出结果时16进制的。我要用的是压缩BCD码,如何赋值,把年(2001)用两个字节表示应如何表示。
      

  2.   

    type 
      TDateTimeRec = packed record
        year: word;
        month: word;
        day: word;
        Hour: word;
        Min: word;
        Sec; word;
        MSec: word;
      end;  PTByteArry = TByteArry
      TByteArry = array [0..sizeof(TDateRec)] of byte;var 
      DateTimeRec: TDateTimeRec;
      ptrByte: PTByteArry;
    ...
      DecodeDate(Present, Year, Month,Day);
      DecodeTime(Present, Hour, Min, Sec, MSec);
      DateTimeRec.year := year;
      DateTimeRec.Month;
      ... {略}
      ptrByte := @DateTimeRec;
      ... {以下就可以使用 ptrByte 操作}BTW: Delphi 中很少用到这样的数据处理方法的。