#字符解析通用框架抽象类定义import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 字符六元队列
class 字符解析通用框架抽象类:def__init__(self):
self.启动码 =3def 设启动码(self,启动码值 =3):
self.启动码 = 启动码值
def 工作函数(self):passdef 行动(self):
n = 共享消息.读取消息值()if self.启动码 == n :
self.工作函数()
队列预存器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 队列预存器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(3)def 工作函数(self):while(字符六元队列.剩余空位数()!=0)and(输入文件.到达文件尾()==False):
x = 输入文件.读取一字节()
字符六元队列.追加元素( x )if 字符六元队列.队列为空()==False:
共享消息.设定消息值(6)
换行判别器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 全局共享 import 字符元素链表
from 全局共享 import 垃圾元素链表
from 字符元素类定义 import 字符元素类
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 换行判别器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(45)def 工作函数(self):
n =len(字符元素链表)if n >=2:
前元素 = 字符元素链表[n-2]
后元素 = 字符元素链表[n-1]
a = 前元素.占用字节数()
b = 后元素.占用字节数()if a ==1and b ==1:
c = 前元素.读元素值(0)
d = 后元素.读元素值(0)if c ==13and d ==10:
共享行列号.行号加一()
共享行列号.设定列号值(0)
共享消息.设定消息值(48)
循环条件判别器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 全局共享 import 字符元素链表
from 全局共享 import 垃圾元素链表
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 循环条件判别器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(48)
self.a =False
self.b =Falsedef 工作函数(self):if 输入文件.到达文件尾():
self.a =Trueelse:
self.a =Falseif 字符六元队列.队列为空():
self.b =Trueelse:
self.b =Falseif self.a and self.b:
共享消息.设定消息值(0)else:
共享消息.设定消息值(3)
六字节字符判别器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 六字节字符判别器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(6)
self.第一字节首字节 =0xFC
self.第一字节尾字节 =0xFD
self.其余字节首字节 =0x80
self.其余字节尾字节 =0xBF
self.a =False
self.b =False
self.c =False
self.d =False
self.e =False
self.f =Falsedef 工作函数(self):if 字符六元队列.已有字节数()==6:
第一字节值 = 字符六元队列.读元素值(0)
第二字节值 = 字符六元队列.读元素值(1)
第三字节值 = 字符六元队列.读元素值(2)
第四字节值 = 字符六元队列.读元素值(3)
第五字节值 = 字符六元队列.读元素值(4)
第六字节值 = 字符六元队列.读元素值(5)if 第一字节值 >= self.第一字节首字节 and 第一字节值 <= self.第一字节尾字节:
self.a =Trueelse:
self.a =Falseif 第二字节值 >= self.其余字节首字节 and 第二字节值 <= self.其余字节尾字节:
self.b =Trueelse:
self.b =Falseif 第三字节值 >= self.其余字节首字节 and 第三字节值 <= self.其余字节尾字节:
self.c =Trueelse:
self.c =Falseif 第四字节值 >= self.其余字节首字节 and 第四字节值 <= self.其余字节尾字节:
self.d =Trueelse:
self.d =Falseif 第五字节值 >= self.其余字节首字节 and 第五字节值 <= self.其余字节尾字节:
self.e =Trueelse:
self.e =Falseif 第六字节值 >= self.其余字节首字节 and 第六字节值 <= self.其余字节尾字节:
self.f =Trueelse:
self.f =Falseif self.a and self.b and self.c and self.d and self.e and self.f :
共享消息.设定消息值(42)else:
共享消息.设定消息值(9)else:
共享消息.设定消息值(9)
五字节字符判别器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 五字节字符判别器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(9)
self.第一字节首字节 =0xF8
self.第一字节尾字节 =0xFB
self.其余字节首字节 =0x80
self.其余字节尾字节 =0xBF
self.a =False
self.b =False
self.c =False
self.d =False
self.e =Falsedef 工作函数(self):if 字符六元队列.已有字节数()>=5:
第一字节值 = 字符六元队列.读元素值(0)
第二字节值 = 字符六元队列.读元素值(1)
第三字节值 = 字符六元队列.读元素值(2)
第四字节值 = 字符六元队列.读元素值(3)
第五字节值 = 字符六元队列.读元素值(4)if 第一字节值 >= self.第一字节首字节 and 第一字节值 <= self.第一字节尾字节:
self.a =Trueelse:
self.a =Falseif 第二字节值 >= self.其余字节首字节 and 第二字节值 <= self.其余字节尾字节:
self.b =Trueelse:
self.b =Falseif 第三字节值 >= self.其余字节首字节 and 第三字节值 <= self.其余字节尾字节:
self.c =Trueelse:
self.c =Falseif 第四字节值 >= self.其余字节首字节 and 第四字节值 <= self.其余字节尾字节:
self.d =Trueelse:
self.d =Falseif 第五字节值 >= self.其余字节首字节 and 第五字节值 <= self.其余字节尾字节:
self.e =Trueelse:
self.e =Falseif self.a and self.b and self.c and self.d and self.e :
共享消息.设定消息值(39)else:
共享消息.设定消息值(12)else:
共享消息.设定消息值(12)
四字节字符判别器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 四字节字符判别器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(12)
self.第一字节首字节 =0xF0
self.第一字节尾字节 =0xF7
self.其余字节首字节 =0x80
self.其余字节尾字节 =0xBF
self.a =False
self.b =False
self.c =False
self.d =Falsedef 工作函数(self):if 字符六元队列.已有字节数()>=4:
第一字节值 = 字符六元队列.读元素值(0)
第二字节值 = 字符六元队列.读元素值(1)
第三字节值 = 字符六元队列.读元素值(2)
第四字节值 = 字符六元队列.读元素值(3)if 第一字节值 >= self.第一字节首字节 and 第一字节值 <= self.第一字节尾字节:
self.a =Trueelse:
self.a =Falseif 第二字节值 >= self.其余字节首字节 and 第二字节值 <= self.其余字节尾字节:
self.b =Trueelse:
self.b =Falseif 第三字节值 >= self.其余字节首字节 and 第三字节值 <= self.其余字节尾字节:
self.c =Trueelse:
self.c =Falseif 第四字节值 >= self.其余字节首字节 and 第四字节值 <= self.其余字节尾字节:
self.d =Trueelse:
self.d =Falseif self.a and self.b and self.c and self.d :
共享消息.设定消息值(36)else:
共享消息.设定消息值(15)else:
共享消息.设定消息值(15)
三字节字符判别器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 三字节字符判别器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(15)
self.第一字节首字节 =0xE0
self.第一字节尾字节 =0xEF
self.其余字节首字节 =0x80
self.其余字节尾字节 =0xBF
self.a =False
self.b =False
self.c =Falsedef 工作函数(self):if 字符六元队列.已有字节数()>=3:
第一字节值 = 字符六元队列.读元素值(0)
第二字节值 = 字符六元队列.读元素值(1)
第三字节值 = 字符六元队列.读元素值(2)if 第一字节值 >= self.第一字节首字节 and 第一字节值 <= self.第一字节尾字节:
self.a =Trueelse:
self.a =Falseif 第二字节值 >= self.其余字节首字节 and 第二字节值 <= self.其余字节尾字节:
self.b =Trueelse:
self.b =Falseif 第三字节值 >= self.其余字节首字节 and 第三字节值 <= self.其余字节尾字节:
self.c =Trueelse:
self.c =Falseif self.a and self.b and self.c :
共享消息.设定消息值(33)else:
共享消息.设定消息值(18)else:
共享消息.设定消息值(18)
二字节字符判别器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 二字节字符判别器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(18)
self.第一字节首字节 =0xC0
self.第一字节尾字节 =0xDF
self.其余字节首字节 =0x80
self.其余字节尾字节 =0xBF
self.a =False
self.b =Falsedef 工作函数(self):if 字符六元队列.已有字节数()>=2:
第一字节值 = 字符六元队列.读元素值(0)
第二字节值 = 字符六元队列.读元素值(1)if 第一字节值 >= self.第一字节首字节 and 第一字节值 <= self.第一字节尾字节:
self.a =Trueelse:
self.a =Falseif 第二字节值 >= self.其余字节首字节 and 第二字节值 <= self.其余字节尾字节:
self.b =Trueelse:
self.b =Falseif self.a and self.b :
共享消息.设定消息值(30)else:
共享消息.设定消息值(21)else:
共享消息.设定消息值(21)
一字节字符判别器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 一字节字符判别器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(21)
self.第一字节首字节 =0x00
self.第一字节尾字节 =0x7F#self.其余字节首字节 = 0x80#self.其余字节尾字节 = 0xBF
self.a =Falsedef 工作函数(self):if 字符六元队列.已有字节数()>=1:
第一字节值 = 字符六元队列.读元素值(0)if 第一字节值 >= self.第一字节首字节 and 第一字节值 <= self.第一字节尾字节:
self.a =Trueelse:
self.a =Falseif self.a :
共享消息.设定消息值(27)else:
共享消息.设定消息值(24)else:
共享消息.设定消息值(24)
六字节字符处理器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 全局共享 import 字符元素链表
from 全局共享 import 垃圾元素链表
from 字符元素类定义 import 字符元素类
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 六字节字符处理器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(42)def 工作函数(self):
字节1= 字符六元队列.读元素值(0)
字节2= 字符六元队列.读元素值(1)
字节3= 字符六元队列.读元素值(2)
字节4= 字符六元队列.读元素值(3)
字节5= 字符六元队列.读元素值(4)
字节6= 字符六元队列.读元素值(5)
字符六元队列.弹出六个元素()
字符元素 = 字符元素类(共享行列号)
字符元素.追加6字节(字节1,字节2,字节3,字节4,字节5,字节6)
字符元素链表.append(字符元素)
共享消息.设定消息值(48)
五字节字符处理器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 全局共享 import 字符元素链表
from 全局共享 import 垃圾元素链表
from 字符元素类定义 import 字符元素类
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 五字节字符处理器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(39)def 工作函数(self):
字节1= 字符六元队列.读元素值(0)
字节2= 字符六元队列.读元素值(1)
字节3= 字符六元队列.读元素值(2)
字节4= 字符六元队列.读元素值(3)
字节5= 字符六元队列.读元素值(4)
字符六元队列.弹出五个元素()
字符元素 = 字符元素类(共享行列号)
字符元素.追加5字节(字节1,字节2,字节3,字节4,字节5)
字符元素链表.append(字符元素)
共享消息.设定消息值(48)
四字节字符处理器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 全局共享 import 字符元素链表
from 全局共享 import 垃圾元素链表
from 字符元素类定义 import 字符元素类
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 四字节字符处理器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(36)def 工作函数(self):
字节1= 字符六元队列.读元素值(0)
字节2= 字符六元队列.读元素值(1)
字节3= 字符六元队列.读元素值(2)
字节4= 字符六元队列.读元素值(3)
字符六元队列.弹出四个元素()
字符元素 = 字符元素类(共享行列号)
字符元素.追加4字节(字节1,字节2,字节3,字节4)
字符元素链表.append(字符元素)
共享消息.设定消息值(48)
三字节字符处理器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 全局共享 import 字符元素链表
from 全局共享 import 垃圾元素链表
from 字符元素类定义 import 字符元素类
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 三字节字符处理器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(33)def 工作函数(self):
字节1= 字符六元队列.读元素值(0)
字节2= 字符六元队列.读元素值(1)
字节3= 字符六元队列.读元素值(2)
字符六元队列.弹出三个元素()
字符元素 = 字符元素类(共享行列号)
字符元素.追加3字节(字节1,字节2,字节3)
字符元素链表.append(字符元素)
共享消息.设定消息值(48)
二字节字符处理器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 全局共享 import 字符元素链表
from 全局共享 import 垃圾元素链表
from 字符元素类定义 import 字符元素类
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 二字节字符处理器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(30)def 工作函数(self):
字节1= 字符六元队列.读元素值(0)
字节2= 字符六元队列.读元素值(1)
字符六元队列.弹出二个元素()
字符元素 = 字符元素类(共享行列号)
字符元素.追加2字节(字节1,字节2)
字符元素链表.append(字符元素)
共享消息.设定消息值(48)
一字节字符处理器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 全局共享 import 字符元素链表
from 全局共享 import 垃圾元素链表
from 字符元素类定义 import 字符元素类
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 一字节字符处理器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(27)def 工作函数(self):
字节1= 字符六元队列.读元素值(0)
字符六元队列.弹出一个元素()
字符元素 = 字符元素类(共享行列号)
字符元素.追加1字节(字节1)
字符元素链表.append(字符元素)
共享消息.设定消息值(45)
垃圾字节字符处理器类定义
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 全局共享 import 字符元素链表
from 全局共享 import 垃圾元素链表
from 字符元素类定义 import 字符元素类
from 字符解析通用框架抽象类定义 import 字符解析通用框架抽象类
class 垃圾字节字符处理器类(字符解析通用框架抽象类):def__init__(self):
self.设启动码(24)def 工作函数(self):if 字符六元队列.已有字节数()>=1:
字节1= 字符六元队列.读元素值(0)
字符六元队列.弹出一个元素()
字符元素 = 字符元素类(共享行列号)
字符元素.追加一字节垃圾值(字节1)
垃圾元素链表.append(字符元素)
共享消息.设定消息值(48)
对utf8字符分析函数
import sys
sys.path.append("D:\cncc\project\对utf8字符分析")#设定自己模块的存储路径from 全局共享 import 共享消息
from 全局共享 import 共享行列号
from 全局共享 import 字符六元队列
from 全局共享 import 输入文件
from 全局共享 import 字符元素链表
from 全局共享 import 垃圾元素链表
from 队列预存器类定义 import 队列预存器类
from 六字节字符判别器类定义 import 六字节字符判别器类
from 五字节字符判别器类定义 import 五字节字符判别器类
from 四字节字符判别器类定义 import 四字节字符判别器类
from 三字节字符判别器类定义 import 三字节字符判别器类
from 二字节字符判别器类定义 import 二字节字符判别器类
from 一字节字符判别器类定义 import 一字节字符判别器类
from 六字节字符处理器类定义 import 六字节字符处理器类
from 五字节字符处理器类定义 import 五字节字符处理器类
from 四字节字符处理器类定义 import 四字节字符处理器类
from 三字节字符处理器类定义 import 三字节字符处理器类
from 二字节字符处理器类定义 import 二字节字符处理器类
from 一字节字符处理器类定义 import 一字节字符处理器类
from 垃圾字节字符处理器类定义 import 垃圾字节字符处理器类
from 换行判别器类定义 import 换行判别器类
from 循环条件判别器类定义 import 循环条件判别器类
def 对utf8字符分析函数(输入文件名):#初始化
队列预存器 = 队列预存器类()
六字节字符判别器 = 六字节字符判别器类()
五字节字符判别器 = 五字节字符判别器类()
四字节字符判别器 = 四字节字符判别器类()
三字节字符判别器 = 三字节字符判别器类()
二字节字符判别器 = 二字节字符判别器类()
一字节字符判别器 = 一字节字符判别器类()
六字节字符处理器 = 六字节字符处理器类()
五字节字符处理器 = 五字节字符处理器类()
四字节字符处理器 = 四字节字符处理器类()
三字节字符处理器 = 三字节字符处理器类()
二字节字符处理器 = 二字节字符处理器类()
一字节字符处理器 = 一字节字符处理器类()
垃圾字节字符处理器 = 垃圾字节字符处理器类()
换行判别器 = 换行判别器类()
循环条件判别器 = 循环条件判别器类()#环境初始化
输入文件.打开文件(输入文件名)
字符元素链表.clear()
垃圾元素链表.clear()
字符六元队列.清空队列()
共享行列号.__init__()
共享消息.设定消息值(3)#工作while 共享消息.读取消息值()!=0:
队列预存器.行动()
六字节字符判别器.行动()
五字节字符判别器.行动()
四字节字符判别器.行动()
三字节字符判别器.行动()
二字节字符判别器.行动()
一字节字符判别器.行动()
六字节字符处理器.行动()
五字节字符处理器.行动()
四字节字符处理器.行动()
三字节字符处理器.行动()
二字节字符处理器.行动()
一字节字符处理器.行动()
垃圾字节字符处理器.行动()
换行判别器.行动()
循环条件判别器.行动()
输入文件.关闭文件()print("有效字符数:",len(字符元素链表))print("无效字符数:",len(垃圾元素链表))
s =len(字符元素链表)for i inrange(s):
c = 字符元素链表[i]
r = c.私有行列号.读取行号值()
l = c.私有行列号.读取列号值()
g = c.元素值
print(r,"行",l,"列",",字符元素值 ",g,",字符 ",c.显示字符())print("示例文件utf8,字符分析如下:")
对utf8字符分析函数("示例文件utf8")print("探索6,字符分析如下:")
对utf8字符分析函数("探索6.md")#print("少年中国说,字符分析如下:")#对utf8字符分析函数("少年中国说")