主题:中文版QBASIC
很多人需要中文版,既然大家要学编程,就可以自己来把你的QB改造成中文版
做的时候应该先将QB。EXE备份
制作思路:
QB里的菜单的单词都是在QB.exe里面,
比如我要把EDIT这个单词给汉化成编辑,就先搜索QB里的这个单词,然后替换成汉字,
如果要汉化很多单词,可以先做一个词库文件,然后查找替换!
这里怎么才能知道FILE是不是你要汉化的单词呢?你可以把前后的内容联系一起看,比如EDIT 后面应该有VIEW ,前面应该是FILE 等等
请有兴趣的网友来做做看
下面是我写的一段程序,只改了一个菜单,请大家自己改更多
这个程序在WIN98,QB4.5版本下运行
有关文件语句的用法请看帖子
CLS
OPEN "qb.exe" FOR BINARY AS #1 '用2进制方式打开QB.EXE,文件句柄为1
DIM DispStr AS STRING * 42 '定义一个显示字符,长度为8
old.name$ = "EDIT" '要找的单词
New.Name$ = "文件" '修改后的单词
FileSize = LOF(1) '取文件的长度,,LOF函数可以返回文件大小
LOCATE 15, 30: PRINT "Changs QB.EXE"
LOCATE 8, 1: PRINT "文件长度 - > "; FILESize'显示文件大小
LOCATE 9, 1: PRINT "搜索进行中-> "
'LOCATE , , 0
i=230000 '预先设置的查找地址(因为我已经找过,免得浪费时间)
DO
i = i + 1
LOCATE 9, 15: PRINT i, i * 100 \ FileSize; "%" '显示查找进度
GET 1, i, old.name$ '从QBASIC.EXE中读
old.name$ = UCASE$(old.name$) '把读出来的字符转换成大写字母
IF old.name$ = "EDIT" THEN '判断是否为EDIT
PRINT "add="; i '显示找到的地址
GET 1, i-6, DispStr '读取前后的字符,以便判断
VIEW PRINT 10 TO 23
PRINT DispStr '显示前后的字符
VIEW PRINT
k$ = INPUT$(1) '等代你的判断,按"y"键确定更改
k$ = LCASE$(k$) '转换成小写
IF k$ = CHR$(27) THEN EXIT DO '如果按ESC,退出程序
IF k$ = "y" THEN PUT 1, i, New.Name$ '如果按了"y"键则修改
END IF
' IF INKEY$ = CHR$(27) THEN EXIT DO
LOOP UNTIL EOF(1) '当到文件结尾,退出
CLOSE '关闭文件
做的时候应该先将QB。EXE备份
制作思路:
QB里的菜单的单词都是在QB.exe里面,
比如我要把EDIT这个单词给汉化成编辑,就先搜索QB里的这个单词,然后替换成汉字,
如果要汉化很多单词,可以先做一个词库文件,然后查找替换!
这里怎么才能知道FILE是不是你要汉化的单词呢?你可以把前后的内容联系一起看,比如EDIT 后面应该有VIEW ,前面应该是FILE 等等
请有兴趣的网友来做做看
下面是我写的一段程序,只改了一个菜单,请大家自己改更多
这个程序在WIN98,QB4.5版本下运行
有关文件语句的用法请看帖子
CLS
OPEN "qb.exe" FOR BINARY AS #1 '用2进制方式打开QB.EXE,文件句柄为1
DIM DispStr AS STRING * 42 '定义一个显示字符,长度为8
old.name$ = "EDIT" '要找的单词
New.Name$ = "文件" '修改后的单词
FileSize = LOF(1) '取文件的长度,,LOF函数可以返回文件大小
LOCATE 15, 30: PRINT "Changs QB.EXE"
LOCATE 8, 1: PRINT "文件长度 - > "; FILESize'显示文件大小
LOCATE 9, 1: PRINT "搜索进行中-> "
'LOCATE , , 0
i=230000 '预先设置的查找地址(因为我已经找过,免得浪费时间)
DO
i = i + 1
LOCATE 9, 15: PRINT i, i * 100 \ FileSize; "%" '显示查找进度
GET 1, i, old.name$ '从QBASIC.EXE中读
old.name$ = UCASE$(old.name$) '把读出来的字符转换成大写字母
IF old.name$ = "EDIT" THEN '判断是否为EDIT
PRINT "add="; i '显示找到的地址
GET 1, i-6, DispStr '读取前后的字符,以便判断
VIEW PRINT 10 TO 23
PRINT DispStr '显示前后的字符
VIEW PRINT
k$ = INPUT$(1) '等代你的判断,按"y"键确定更改
k$ = LCASE$(k$) '转换成小写
IF k$ = CHR$(27) THEN EXIT DO '如果按ESC,退出程序
IF k$ = "y" THEN PUT 1, i, New.Name$ '如果按了"y"键则修改
END IF
' IF INKEY$ = CHR$(27) THEN EXIT DO
LOOP UNTIL EOF(1) '当到文件结尾,退出
CLOSE '关闭文件