level 14
起帆远航
楼主
REM Qbasic 显示汉字函数 编程:liuhaitao 于1998年 唐山农校 QQ:7552169
SCREEN 12
hz1$ = "测试用点阵字显示方法"
viewhz 1, 100, hz1$, 11
REM 显示汉字的子程序,需要汉字库hzk.fnt
SUB viewhz (x0, y0, hz.word$, hzcol)
OPEN "hzk16" FOR BINARY AS #1
IF LOF(1) = 0 THEN PRINT "没有汉字库! ":END
savex0 = x0: savey0 = y0
FOR now = 1 TO LEN(hz.word$)
qu = ASC(MID$(hz.word$, now, 1))
IF qu >= 161 THEN
now = now + 1
IF now > LEN(hz.word$) THEN EXIT FOR
wei = ASC(MID$(hz.word$, now, 1))
ps& = ((qu - 161) * 94& + wei - 161) * 32& + 1
SEEK #1, ps&
zimo$ = INPUT$(32, 1)
num = 1
FOR y = 0 TO 15
chr1$ = MID$(zimo$, num, 1)
num = num + 1
chr2$ = MID$(zimo$, num, 1)
num = num + 1
chr3$ = chr2$ + chr1$
LINE (x0, y0 + y)-STEP(15, 0), hzcol, , CVI(chr3$)
NEXT y
x0 = x0 + 16
ELSE
SEEK #2, qu * 16
zimo$ = INPUT$(16, 2)
FOR y = 1 TO 16
zmchr$ = CHR$(0) + MID$(zimo$, y, 1)
LINE (x0, y0 + y)-STEP(15, 0), hzcol, , CVI(zmchr$)
NEXT y
x0 = x0 + 8
END IF
NEXT now
x0 = savex0: y0 = savey0
close #1
END SUB
2012年07月11日 02点07分
1
SCREEN 12
hz1$ = "测试用点阵字显示方法"
viewhz 1, 100, hz1$, 11
REM 显示汉字的子程序,需要汉字库hzk.fnt
SUB viewhz (x0, y0, hz.word$, hzcol)
OPEN "hzk16" FOR BINARY AS #1
IF LOF(1) = 0 THEN PRINT "没有汉字库! ":END
savex0 = x0: savey0 = y0
FOR now = 1 TO LEN(hz.word$)
qu = ASC(MID$(hz.word$, now, 1))
IF qu >= 161 THEN
now = now + 1
IF now > LEN(hz.word$) THEN EXIT FOR
wei = ASC(MID$(hz.word$, now, 1))
ps& = ((qu - 161) * 94& + wei - 161) * 32& + 1
SEEK #1, ps&
zimo$ = INPUT$(32, 1)
num = 1
FOR y = 0 TO 15
chr1$ = MID$(zimo$, num, 1)
num = num + 1
chr2$ = MID$(zimo$, num, 1)
num = num + 1
chr3$ = chr2$ + chr1$
LINE (x0, y0 + y)-STEP(15, 0), hzcol, , CVI(chr3$)
NEXT y
x0 = x0 + 16
ELSE
SEEK #2, qu * 16
zimo$ = INPUT$(16, 2)
FOR y = 1 TO 16
zmchr$ = CHR$(0) + MID$(zimo$, y, 1)
LINE (x0, y0 + y)-STEP(15, 0), hzcol, , CVI(zmchr$)
NEXT y
x0 = x0 + 8
END IF
NEXT now
x0 = savex0: y0 = savey0
close #1
END SUB


