版权声明:原创文章,欢迎转载,转载请注明出处 https://blog.csdn.net/li7032/article/details/78727278
char read[256]={0};
char write[256]={0};
int line = 0, spxLen, onePiece, i;
long poscode = 0;
CFile fileR("D:\\123.txt" ,CFile::modeRead);
CFile fileW("D:\\456.txt" , CFile::modeCreate | CFile::modeWrite);
spxLen = fileR.GetLength();
fileW.Seek(0, CFile::begin);
fileR.Read(read,10);
for (i=0 ;i<8; i++ ){
if (read[2+i]>= 'A')
read[2+i] = read[2+i] -'A' + 10;
else
read[2+i] = read[2+i] -'0';
poscode = (poscode<<4) + read[2+i];
}
memset(write,0, sizeof(write));
sprintf_s(write, "设备:0-74,区域:0,终端编号:0x00%08x,开始地址:0x00000000,结束地址:0x%08x,目录长度:0x00000000",
poscode,spxLen/2);
i = strlen(write);
write[i] = 0xA;
fileW.Write(write, (i+1));
while(spxLen > 0)
{
fileR.Seek(line*2*0x40,CFile::begin);
//fileW.Seek((line*0x80+12),CFile::current);
if (spxLen >= 0x80){
onePiece = 0x80;
spxLen -= 0x80;
}
else{
onePiece = spxLen;
spxLen = 0;
}
sprintf_s(write, "0x%08x", line*0x40);
write[10] = ':';
fileR.Read(read,onePiece);
memcpy(write+11, read, onePiece);
write[11+onePiece] = 0xA;
line ++;
fileW.Write(write, (11+onePiece+1));
}
fileW.Close();