用python代码显示汉字
import os
import struct
import time
def GetHZOffset(HZ):
GB=HZ.encode("gbk")
#GBVal=struct.unpack("BB",GB)
return ((GB[0]-0xa1)*94+GB[1]-0xa1)*32
def GetHZArray(In,HZ,HZArray):
Offset=GetHZOffset(HZ)
In.seek(Offset,0)
HZInfo=In.read(32)
HZValue=struct.unpack("32B",HZInfo)
No=0
HZArray.append([])
for i in range(32):
for j in range(8):
if ((0x80>>j) & HZValue[i] ) == 0:
HZArray[No].append(" ")
else:
HZArray[No].append("*")
if i%2 == 1:
No=No+1
HZArray.append([])
def Append(HZsArrayLine,HZArrayLine):
HZsArrayLine.append(" ")
for i in range(16):
HZsArrayLine.append(HZArrayLine[i])
def Add2HZsArray(HZArray,HZsArray):
for i in range(16):
Append(HZsArray[i],HZArray[i])
def SetHZsArray(HZs,HZLib,HZsArray):
In=open(HZLib,"rb")
for HZ in HZs:
HZArray=[]
GetHZArray(In,HZ,HZArray)
Add2HZsArray(HZArray,HZsArray)
In.close()
def Display(HZsArray):
i=0
while(1):
time.sleep(1)
os.system("cls")
for k in range(16):
for j in range(i,len(HZsArray[0])):
print(HZsArray[k][j],end="")
for j in range(0,i):
print(HZsArray[k][j],end="")
print("")
if i == len(HZsArray[0]):
i=0
else:
i=i+1
def ShowHZs(HZs,HZLib):
HZsArray=[]
for i in range(16):
HZ=[]
HZsArray.append(HZ)
SetHZsArray(HZs,HZLib,HZsArray)
Display(HZsArray)
HZs="大家好"
HZLib="hzk.dat"
ShowHZs(HZs,HZLib)
现在可以实现横向循环显示,无报错。
修改循环方式也没有成功
想问一下大家,怎么修改,才能让他整体汉字竖向循环显示?期待大家的回复。
import os
import struct
import time
def GetHZOffset(HZ):
GB = HZ.encode("gbk")
# GBVal=struct.unpack("BB",GB)
return ((GB[0] - 0xa1) * 94 + GB[1] - 0xa1) * 32
def GetHZArray(In, HZ, HZArray):
Offset = GetHZOffset(HZ)
In.seek(Offset, 0)
HZInfo = In.read(32)
HZValue = struct.unpack("32B", HZInfo)
No = 0
HZArray.append([])
for i in range(32):
for j in range(8):
if ((0x80 >> j) & HZValue[i]) == 0:
HZArray[No].append(" ")
else:
HZArray[No].append("*")
if i % 2 == 1:
No = No + 1
HZArray.append([])
def Append(HZsArrayLine, HZArrayLine):
HZsArrayLine.append(" ")
for i in range(16):
HZsArrayLine.append(HZArrayLine[i])
def Add2HZsArray(HZArray, HZsArray):
for i in range(16):
Append(HZsArray[i], HZArray[i])
def SetHZsArray(HZs, HZLib, HZsArray):
In = open(HZLib, "rb")
for HZ in HZs:
HZArray = []
GetHZArray(In, HZ, HZArray)
Add2HZsArray(HZArray, HZsArray)
In.close()
def Display(HZsArray):
i = 0
while (1):
time.sleep(1)
os.system("cls")
for k in range(16):
for j in range(i, len(HZsArray[0])):
print(HZsArray[k][j], end="\n")
for j in range(0, i):
print(HZsArray[k][j], end="\n")
print("")
if i == len(HZsArray[0]):
i = 0
else:
i = i + 1
def ShowHZs(HZs, HZLib):
HZsArray = []
for i in range(16):
HZ = []
HZsArray.append(HZ)
SetHZsArray(HZs, HZLib, HZsArray)
Display(HZsArray)
HZs = "大家好"
HZLib = "hzk.dat"
ShowHZs(HZs, HZLib)