问题尚未解决?

TotalCount=600; /* 自己定义的读600字节 */ while ( TotalCount ) { if ( TotalCount > MAX_BYTE_IO ) c = MAX_BYTE_IO; else c = TotalCount; mCmdParam.ByteRead.mByteCount = c; i = CH375ByteRead( ); mStopIfError( i ); TotalCount -= mCmdParam.ByteRead.mByteCount; for ( i=0; i!=mCmdParam.ByteRead.mByteCount; i++ ) {printf( "%c", mCmdParam.ByteRead.mByteBuffer[i] ); } 。。。。。。 }

文本文件内容如下: 0x00, 0x00, 0x02, 0x30, 0x00, 0x00, 0x00, 0x00, 0x25, 0xb1, 0xb1, 0x10, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xd8, 0xcf, 0xc2, 0xa3, 0xb1, 0xb3, 0xac, 0xca, 0xd0, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xca, 0x25, 0x01, 0x01, 0x10, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xd8, 0xcf, 0xc2, 0xa3, 0xb1, 0xb3, 0xac, 0xca, 0xd0, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xcb, 0x25, 0x01, 0x01, 0x10, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xd8, 0xcf, 0xc2, 0xa3, 0xb1, 0xb3, 0xac, 0xca, 0xd0, 0xa1, ...... //如上所示:用上边的代码读文本文件的内容都能读出来,可是在加入以下代码之后 就只能读出前38个数据了,再往后读出来的就是错误了

//代码部分 把for ( i=0; i!=mCmdParam.ByteRead.mByteCount; i++ ) 的循环的内容修改如下: for( i=0;i{ ch = mCmdParam.ByteRead.mByteBuffer[i]; switch(ch) { case 'x': { next1=mCmdParam.ByteRead.mByteBuffer[i+1]; next2=mCmdParam.ByteRead.mByteBuffer[i+2]; if((next1>=0x30)&&(next1<=0x39)) { next1=next1-0x30; } else if((next1>=0x61)&&(next1<=0x66)) { next1=next1-0x61+10; } else printf("error1"); if((next2>=0x30)&&(next2<=0x39)) { next2=next2-0x30; } else if((next2>=0x61)&&(next2<=0x66)) { next2=next2-0x61+10; } else printf("error2"); bao[datalen]= next1*16 + next2; datalen++; count++; } break; default: break; } } if(count%38==0) { for(i=0;i { printf("%c",bao[i]); /* 循环输出当前包中的数据 */ } datalen=0; count=0; }

加上述代码的目的 :是为了实现每读取到38个数据的时候,就把这38个数据通过串口发出去; 问题 1:应用上边的代码只能读出前38个数据,再往后读出来的就是错误了,请问如何解决? 2. 用375能读写二进制文件吗?操作二进制文件和操作文本文件在编程上有何区别? 麻烦各位帮俺 看看 ,谢谢

人呢 ?


怎么没人回复我呢 ?


只有登录才能回复,可以选择微信账号登录