level 5
这里提供一个思路:
dim 我的变量 as integer
把 “ 我的变量” 转化为 一个英字符串
再拿去运行
2016年11月16日 12点11分
1
level 5
先来一个框架:
'让Qbasic支持中文的 变量名 函数名等
basname$ = "你的有中.bas" '输入有中文的 变量名 函数名bas文件
outfile = "英.bas" '输出正常的bas文件
OPEN filename$ FOR BINARY AS #1
OPEN outfile$ FOR OUTPUT AS #2
'开始
PRINT "转换开始"
DO
LINE INPUT #1, a$
PRINT #2, 转换$(a$)
LOCATE 6, 3
行=行+1
PRINT "第"; 行;"行"
LOOP UNTIL (EOF(1))
'结束
PRINT "转换完成"
END
FUNCTION 转换$(a$)
'这里作转换工作
转换$=a$
END FUNCTION
2016年11月18日 15点11分
2
level 14
这个可以实现,不过要考虑到重复的问题。
因为每个汉字的英文或是拼音 可能会相对的汉字是多个,所以需要做个记录,记录下每个汉字转换为英文的中、英文,如果转换多个汉字变量时出现了相同的英文 那么在后面出现的英文后面加上数字序号。。。
2016年11月20日 12点11分
3
好的,谢谢提醒
2016年11月20日 14点11分
好的,我先搞一下
2016年11月21日 11点11分
level 5
'现在充实 转换$( )
FUNCTION 转换$(a$) '
'这里作转换工作
dim 中$,英$ '
dim 有中% '
FOR i = 1 TO LEN(a$)
k$ = MID$(a$, i, 1)
IF asc(k$)>127 THEN
中$ =中$+k$ '
有中%=1 '
else
if 有中%=1 then
英$=英$+ 转换一个$(中$) '这里转化一个中文字符串
有中%=0
endif
英$=英$+k$
end if
NEXT i
转换$=英$ 'a$
END FUNCTION
FUNCTION 转换一个$(中$) STATIC '
dim 字符串数组$(1000)'
dim 中文计数% '
'查表(在 字符串数组$ 中找)
'以后有空再写****
转换一个$
END FUNCTION
2016年11月21日 11点11分
4
level 5
这里是一个完整程序,有兴趣的可以试试:
'让Qbasic支持中文的 变量名 函数名等
basname$ = "zhong.bas" '输入有中文的文件
outfile$ = "english.bas" '输出正常的bas文件
OPEN basname$ FOR INPUT AS #1
OPEN outfile$ FOR OUTPUT AS #2
PRINT "start" '开始
DO
LINE INPUT #1, a$
PRINT #2, change$(a$) '转换好的一行
LOCATE 6, 3
lines = lines +1
PRINT lines
LOOP UNTIL (EOF(1))
'结束
PRINT "end" '完成
END
FUNCTION change$ (a$)
'这里作转换工作
DIM zhong$, english$
DIM zhong2%
FOR i = 1 TO LEN(a$)
k$ = MID$(a$, i, 1)
IF ASC(k$) > 127 THEN
zhong$ = zhong$ + k$
zhong2% = 1
ELSE
IF zhong2% = 1 THEN
english$ = english$ + ConvertOne(zhong$)' 转换一个中文
zhong2% = 0
END IF
english$ = english$ + k$
END IF
NEXT i
change$ = english$
END FUNCTION
FUNCTION ConvertOne$ (zhong$) STATIC
DIM string123$(1 to 1000) '保存
DIM sum% '中文计数
dim k%
k%=0
if sum%=0 then
string123$(1) = zhong$'第一个
sum% = 1'中文计数%=1
k%=1
else
'查表
FOR i = 1 TO sum%
IF zhong$ = string123$(i) THEN '有
k%=i
exit for
else
END IF
NEXT
end if
if k%=0 then '无
sum% = sum%+1'保存
string123$(sum%) = zhong$
ConvertOne$ = "z_w_" +LTRIM$( STR$(sum%))
else
ConvertOne$ ="z_w_" +LTRIM$( STR$(k%))
end if
END FUNCTION
2016年11月25日 10点11分
5
_ 下划线 QBasic1.1 不能用可以去掉
2016年11月30日 14点11分
level 5
'change$()有错重写了一下
FUNCTION change$ (a$)
'这里作转换工作
DIM zhong$, english$
DIM zhong2%
FOR i = 1 TO LEN(a$)
k$ = MID$(a$, i, 1)
IF ASC(k$) > 127 THEN
zhong$ = zhong$ + k$
zhong2% = 1
IF i = LEN(a$) THEN '到行尾
english$ = english$ + ConvertOne(zhong$)
END IF
ELSE
IF zhong2% = 1 THEN
english$ = english$ + ConvertOne(zhong$)' 转换一个中文
zhong2% = 0
zhong$ = "" '清空
END IF
english$ = english$ + k$
END IF
NEXT i
change$ = english$
END FUNCTION
2016年11月30日 14点11分
6