有一二進制文件結構如下:
文件結構   文件詳細結構    大小(字節)
文件頭:      ip地址          4
             機械名         260
            開始日期         4
            結束日期         4
數據1       日期             4
            Ready時間        4
            加工時間         4
            Halt時間         4
            ACK時間          4
            加工次數         4
            加工長度         4
數據2       日期             4
            Ready時間        4
            加工時間         4
            Halt時間         4
            ACK時間          4
            加工次數         4
            加工長度         4
......
數據n       日期             4
            Ready時間        4
            加工時間         4
            Halt時間         4
            ACK時間          4
            加工次數         4
            加工長度         4
有C++示例代碼如下:
  typedef struct _AccumHeader
{
            IN_ADDR          IPAddr;
            char                  szMachName[MAX_PATH];
            time_t               startDate;
            time_t               endDate;
}ACCUMHEADER;
 
typedef struct _DailyAccumData
{
            time_t               localTime;
            unsigned long    nReadyTime;     
            unsigned long    nRunTime;         
            unsigned long    nHaltTime;         
            unsigned long    nAckTime;         
            unsigned long    nRunCount;       
            unsigned long    nCutLength;       
 
            _DailyAccumData()
            {
                        Init();
            }
            void Init()
            {
                        ZeroMemory(&localTime, sizeof(localTime));
                        nReadyTime = 0; 
                        nRunTime = 0;
                        nHaltTime = 0;
                        nAckTime = 0;
                        nRunCount = 0;
                        nCutLength = 0;
            }
}DAILYACCUMDATA;
 
DAILYACCUMDATA *pBuf  = NULL;
 
CFile accFile;
UINT nOpenFlags = CFile::modeRead;
if ( !accFile.Open(strFile, nOpenFlags, NULL ) )
{
            return;
}
 
// read header
ACCUMHEADER header;
if( accFile.GetLength() <= sizeof(header) )
{
            accFile.Close();
            return;
}
 
accFile.Read(&header,sizeof(header));
 
int nItems = (accFile.GetLength()-sizeof(ACCUMHEADER))/sizeof(DAILYACCUMDATA);
 
pBuf = new DAILYACCUMDATA[nItems];
 
for (int i = 0; i< nItems; i++)
 {
            accFile.Read(&pBuf[i],sizeof(DAILYACCUMDATA));
}
 
accFile.Close();請教高手用PASCAL如何寫???