[问题] 一长串资料解析

楼主: JGC18 (JGC)   2015-05-12 11:43:29
各位先进好:
小弟今天有一台设备,假设回应资料的长度会有,250bytes, 120bytes, 60bytes
这250bytes,假设依照规格总共可以解析出10个字段(字段编号为A,B,C,D,E,F,G,H,I,J)
120bytes,可以解析出6个字段(字段编号为 A,D,E,F,I,J)
60bytes,可以解析出3个字段 (字段编号为 B,C,D)
250个bytes等于是完整的所有资料回复
如果有错误,就是回应120bytes跟60bytes
我目前想到的方法是用一个class类似这样
Public Class DataParser{
private byte[] a= new byte[10];
private byte[] b= new byte[5];
private byte[] c= new byte[3];
....//以此类推新增到 j
private byte[] j= new byte[5];
public void parse(byte[] data){
if(长度为250){
//解析到10个字段中, a,b,c,d,e,f,g,h,i,j
} else if(长度为120) {
//解析到6个字段中
} else if (长度为60) {
//解析到3个字段中
} else {//error, 未知长度}
}
public byte[] getA(){ return a;}
public byte[] getB(){ return b;}
....
public byte[] getJ(){ return j;}
}
这是我目前想到最直觉得方法
但是实际上可能我的字段不止10个
可能会达到50个以上,接收要解析的资料长度,最大不会超过300bytes
但这样的方式是否会有太多byte array的变量,使用太多内存呢
不知道是不是有其它思考的方向可以提供给我做参考
感谢
作者: LaPass (LaPass)   2015-05-12 20:45:00
看不太懂问题,请问是指资料长度不固定吗?还是说格式不清不楚导致这种问题?
作者: realmeat (真肉)   2015-05-13 12:12:00
看不懂你的需求 +1

Links booklink

Contact Us: admin [ a t ] ucptt.com