2011-11-09 92 views
2

我正在尋找一種方法來從二進制文件中獲取一個int值。因此,讓我說我有這個文件「myfile.dat」從我的電腦我從哪裏存儲了很多東西... 現在我需要從我的iPhone讀取該文件並顯示數據...Obj-C從二進制文件讀取小尾數? (xcode)

關於「 MYFILE.DAT」我有這個(二進制文件和所有的整數都是小端): 0-12:簽名字符串 13-16:整型數字(注意,長度= 4)

因此,使用NSData的我知道我可以從pos 13讀到pos 16並獲取這些字節...我可以正確地獲得第一個0-12字符串,但是我無法讀取pos 13-16並將其轉換爲Obj-C中的int值; (

我有類似的東西:

unsigned char bytes[length]; 
[_data getBytes:bytes range:NSMakeRange(offset, length)]; 
int32_t elem = OSReadLittleInt32(bytes, 0); 

現在,我是一個新手,當涉及到的OBJ-C和C/C++ ......我所有的生活中,我一直在與C#(SAD)...

誰能幫助?提前致謝!

回答

4

這給一試:

unsigned long bytes; 
[_data getBytes: &bytes length: sizeof(unsigned long)]; 

NSLog(@"%i", NSSwapLittleLongToHost(bytes)); 
+0

我仍然得到一些錯誤號:544106784.哪項是錯誤的。我正在尋找正確的號碼是333 – rzumbado

+0

你可以添加的NSLog的'輸出( @「data:%@」,[_data description])'? – Jef

+0

哦,男孩,你會恨我......我以錯誤的順序(在文件上)存儲值...所以你的這種方法工作得很好。所以非常感謝你:)你搖滾! – rzumbado