2014-01-16 141 views
0

我正在开发一个小的Java软件来解码来自另一个系统的特定数据。从C文件中提取int数组

该系统只能在* .c文件中提取数据:

/* Frame (574 bytes) */ 
static const unsigned char pkt22[574] = { 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x2f, /* ......./ */ 
0x48, 0x00, 0x10, 0x27, 0x40, 0x00, 0x3e, 0x00, /* H..'y.>. */ 
... 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xd6, /* ........ */ 
0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ........ */ 
}; 

/* Frame (574 bytes) */ 
static const unsigned char pkt59[574] = { 
0x00, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 
0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, /* ........ */ 
... 
0x00, 0x00, 0xc0, 0x68, 0x40, 0x00, 0xc0, 0x00, /* [email protected] */ 
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* @....... */ 
}; 

我想提取这些数据,并在我的Java软件一起使用。 有没有解析器可以帮助我做到这一点?

+1

它可能是一个简单的正则表达式的用例。只需抓住你想要的声明,然后提取下一个'{}' –

+0

谢谢Jakob,简单而高效。 我会给你反馈 – Max

回答

1

什么:

int pkt22[] = new int[] { 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x2f, /* ......./ */ 
    ... 
}; 

int pkt59[] = new int[] { 
    0x00, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 
    ... 
}; 

使用复制粘贴?

+0

简单而有效的方法,但提问者要求解析器。 – TwilightSun

+0

.c文件应该是软件的输入。这就是为什么“复制/粘贴”不是我最好的方式。 – Max