小编Sey*_*sor的帖子

在python中读取空终止字符串

我正在尝试读取一个以空字符结尾的字符串,但是在解压缩字符并将其与字符串放在一起时遇到问题。

这是代码:

def readString(f):
    str = ''
    while True:
        char = readChar(f)
        str = str.join(char)
        if (hex(ord(char))) == '0x0':
            break           
    return str

def readChar(f):
    char = unpack('c',f.read(1))[0]
    return char
Run Code Online (Sandbox Code Playgroud)

现在这给了我这个错误:

TypeError: sequence item 0: expected str instance, int found
Run Code Online (Sandbox Code Playgroud)

我也在尝试以下方法:

char = unpack('c',f.read(1)).decode("ascii")
Run Code Online (Sandbox Code Playgroud)

但它抛出我: AttributeError: 'tuple' object has no attribute 'decode'

我什至不知道如何读取字符并将其添加到字符串中,有什么正确的方法可以做到这一点?

python scripting

2
推荐指数
3
解决办法
8132
查看次数

C# 中的 BinaryReader 读取字符串不读取第一个字节

我正在使用 C# 中的 System.IO 中的 BinaryReader 读取二进制文件,但是,当使用 ReadString 时,它不会读取第一个字节,代码如下:

using (var b = new BinaryReader(File.Open(open.FileName, FileMode.Open)))
{
    int version = b.ReadInt32();
    int chunkID = b.ReadInt32();
    string objname = b.ReadString();
}
Run Code Online (Sandbox Code Playgroud)

这并不难,首先它读取两个整数,但应该返回 objame 的字符串是“bat”,而它返回的是“at”。

这与我读过的前两个整数有关系吗?或者可能是因为第一个 int 和字符串之间没有空字节?

提前致谢。

c# string binaryreader

1
推荐指数
1
解决办法
7658
查看次数

标签 统计

binaryreader ×1

c# ×1

python ×1

scripting ×1

string ×1