2013-03-06 115 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