中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 12:17
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 如何将txt转成bin文件? 查看 2,531 回复 6
楼 主 如何将txt转成bin文件? 发表于 2007-09-19 15:41 ·  中国 辽宁 抚顺 联通
新手上路
积分 12
发帖 4
注册 2007-09-19 15:19
18年会员
UID 97789
性别 男
状态 离线
利用Python 2.5加下面的程序,把bin转成了txt文件,但是修改后不知道应该怎么转回bin文件.请高手帮忙.



# strings_bin_converter.py (c) 2006 Stefan Reutter (alias alpaca)
# Version 0.72
# A script to convert a number of MTW2 .strings.bin files to their .txt counterparts

import sys
import codecs
import struct
import os

def convertFile(filepath):
"""
Takes a type 2 .strings.bin file and converts it to a text file
"""
f = open(filepath+'.strings.bin', 'rb')
(style1,) = struct.unpack('h',f.read(2))
(style2,) = struct.unpack('h', f.read(2))
if style1 == 2 and style2 == 2048:
fw = codecs.open(filepath, encoding='UTF-16', mode='w')
fw.write(unicode(struct.pack('HH',0xFFFE,0xAC00),'UTF-16')+'\r\n')
(length,) = struct.unpack('i',f.read(4))
for string in range(length):
(strlen,) = struct.unpack('h', f.read(2))
tagstr = ''
for i in range(strlen):
tagstr += unicode(f.read(2), 'UTF-16')
(strlen,) = struct.unpack('h', f.read(2))
screenstr = ''
for i in range(strlen):
tempstr = f.read(2)
(e,) = struct.unpack('H',tempstr)
if e == 10:
screenstr += '\\n'
else:
screenstr += unicode(tempstr, 'UTF-16')
fw.write('{'+tagstr+'}'+screenstr+'\r\n')
fw.close()
f.close()

if sys.argv == 'all':
arr =
i = 1
for filepath in os.listdir(''):
if filepath.find('.strings.bin') > -1:
arr.append(filepath.split('.strings.bin'))
for filepath in arr:
print 'Converting file '+filepath+'('+str(i)+' of '+str(len(arr))+')'
convertFile(filepath)
i+=1
else:
for i in range(len(sys.argv)-1):
path = sys.argv
convertFile(path)








[ Last edited by appeal on 2007-9-19 at 05:29 PM ]
2 发表于 2007-09-19 16:43 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
python也能到这里提问,不错不错很有前途。

请问楼主这里的Python是否DGJPP在DOS下的编译版本?

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
3 发表于 2007-09-19 17:33 ·  中国 辽宁 抚顺 联通
新手上路
积分 12
发帖 4
注册 2007-09-19 15:19
18年会员
UID 97789
性别 男
状态 离线
又上传了3个贴图,高手这回能理解了吗?我把txt.strings.bin用python和那个小程序转成了txt文件,给游戏做了汉化,现在想转回去txt.strings.bin,不知道该怎么办.
4 发表于 2007-09-19 23:06 ·  中国 陕西 渭南 电信
初级用户
★★
积分 186
发帖 92
注册 2007-03-27 08:20
19年会员
UID 83047
性别 男
状态 离线
贴图可以直接以附件上传的,不用外链
5 发表于 2007-09-19 23:09 ·  中国 陕西 渭南 电信
初级用户
★★
积分 186
发帖 92
注册 2007-03-27 08:20
19年会员
UID 83047
性别 男
状态 离线
可以肯定,转回BIN格式基本上就不能用了,这样做汉化,不太好用
6 发表于 2007-09-19 23:45 ·  中国 辽宁 抚顺 联通
新手上路
积分 12
发帖 4
注册 2007-09-19 15:19
18年会员
UID 97789
性别 男
状态 离线
就算这样,翻译内容是固定的,也算没白翻译.请问这里面的txt.strings.bin和txt要怎么相互转换?为什么转回去就不能用了呢?
7 发表于 2007-09-28 10:35 ·  中国 江西 南昌 电信
初级用户
积分 45
发帖 22
注册 2007-09-13 14:56
18年会员
UID 97278
性别 男
状态 离线
看不懂
论坛跳转: