有一二進制文件結構如下:
文件結構 文件詳細結構 大小(字節)
文件頭: 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如何寫???
文件結構 文件詳細結構 大小(字節)
文件頭: 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如何寫???
解决方案 »
- Win2000出現日期自動跳的問題,請各位幫忙解答
- 求救:如何准备delphi和sql Server的考试,谢谢
- ==我用ADO访问ACCESS。我使用sql建立了一个表,但是如何删除表?
- 如何动态添加treeview控件的节点
- 如何做大图标的工具栏?
- 请问在DELPHI 中怎么调用PB 所写的DLL 库(100分求解)
- 怎样把addr()取出的地址放在一个字符变量中。
- 有谁知道程序员大本营光盘中Delphi5.0 ADOExpress 升级包的注册码?
- 关于TDBChart的一些问题?
- select * from tele.db where 姓名=edit1.text;
- 小問題 : 關於Edit輸入框
- 打包安装程序
CloseFile
Eof
Readln
copy
这几个函数应该可以满足要求