1

私は最近プログラミングに戻ってきて、やる気を起こさせるためのプロジェクトとして、フォールアウト 2 のキャラクター エディターを作成することにしました。ファイルオフセットまたは構造体を使用して必要なデータ。

これが私がやっていることです。私が使用しているファイルは www.retro-gaming-world.com/SAVE.DAT です

import struct
savefile = open('SAVE.DAT', 'rb')
try:
        test = savefile.read()
finally:
        savefile.close()

print 'Header: ' +  test[0x00:0x18] # returns the save files header description "'FALLOUT SAVE FILE '"
print "Character Name: " + test[0x1D:0x20+4] Returns the characters name "f1nk"
print "Save game name: " + test[0x3D:0x1E+4] # isn't returning the save name "church" like expected
print "Experience: " + str(struct.unpack('>h', test[0x08:0x04])[0]) # is expected to return the current experience but gives the follosing error

出力:

Header: FALLOUT SAVE FILE
Character Name: f1nk
Save game name: 
    Traceback (most recent call last):
        File "test", line 11, in <module>
        print "Experience: " + str(struct.unpack('>h', test[0x08:0x04])[0])
    struct.error: unpack requires a string argument of length 2

オフセットを確認しましたが、期待どおりに何も返されません。

4

1 に答える 1

0

test[0x08:0x04]終了インデックスが開始インデックスより小さいため、空の文字列です。

たとえばtest[0x08:0x0A]、コードで必要な 2 バイトが返されhます。

文字列スライスの構文はs[start:end]ors[start:end:step]です。ドキュメントへのリンク

于 2013-09-23T08:19:15.967 に答える