2013-03-06 96 views
1

我有一個固定寬度的文本文件,目前我正在使用streamreader/readline()進行讀取。如何讀取文本文件中的二進制字段

有一個字段,當我在記事本中打開++看起來像這樣

[NUL] [NUL] [NUL] [SUB]

其他的都是普通的文本。我知道這個領域,就是要4個字符,表示數量,使得應該是這樣的「0001」

我怎麼能閱讀並轉化爲「0001」

+0

在.Net中有'BinaryReader' – 2013-03-06 01:26:35

回答

3

我不知道什麼是「SUB 「是指對應 - 但如果它讀作U + 0001,你總是可以使用:

for (int i = 0; i < 4; i++) { 
    chars[i + index] = (int) chars[i + index] + '0'; 
} 

(假設你有一個char[]稱爲chars,起價index的4個字節)。

c的第一件事heck是你是否真的正確閱讀角色開始。坦白地說,有一個帶有二進制數據的「文本」文件開頭,但如果它只是字節0-9,那麼在大部分編碼我希望對應於U + 0000到U + 0009 。

+0

+1我想這可能是一個包含一些可讀文本的二進制文件。 – 2013-03-06 01:23:22

+0

現在我通過在line.readLine()上做line.substrings來提取信息。你是否應該在應用上述之前將這4個字符轉換爲char []? – kouri 2013-03-06 02:00:08

+0

哦,我給它一個去,現在輸出0000,000J和0009. 0000當所有4都是正確的NUL我認爲,但我認爲J和9是不正確的,這是我在記事本++ – kouri 2013-03-06 02:45:50

相關問題