2014-01-16 73 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