CSS样式解析器支持一键分析软件

易语言 2020-05-01 20:28:14

CSS样式解析器支持一键分析软件

文本 = 到小写 (编辑框.内容) ' 到小写 是个人喜好的问题我比较喜好小写的!
文本 = 子文本替换 (文本, #换行符, “”, 1, , 真) ' 去掉换行我们自己加着玩!方便解析文本,也方便了排版!
文本 = 子文本替换 (文本, 到文本 ({ 9 }), “”, 1, , 真) ' 一个特殊的空格!输入法可能输入不出来 !正常空格是{10}
上次位置 = 1 ' 初始化这个值!很无语0不可行! 不能直接使用0 取文本中间会错掉的!
.判断循环首 (取文本长度 (文本) ≠ 解析位置) ' 解析文本的进度 呵呵! 相同就结束 就是完成解析了!
处理事件 () ' 这个是防止程序卡 和假死!
是否解析 = 真 ' 状态在解析中 设置一个状态! 外部可以访问
结束位置 = 寻找文本 (文本, “{”, 上次位置, 假) ' 代码的作用是这样的 如 “#样式{” 我们寻找{这样的文本。而#说明是这个样式的名字的开头!通过样式开头{找样式名字开头#取中间的文本就是样式名称!
.如果真 (结束位置 ≠ -1) ' 1 没有寻找失败,说明存在 如 “#样式{” 或者里面有换行符号的等等
临时文本 = 取文本中间 (文本, 上次位置, 结束位置 - 上次位置) ' 这里我们故意去掉了{ 寻找文本命令只是找到的文本的位置,我们选择的文本正好去掉了他!
临时文本 = 删全部空 (临时文本) ' 去掉空格我们自己加着玩!
显示文本 = 显示文本 + 临时文本 + “ ” + “/*” + 临时文本 + “样式” + “*/” + #换行符 + “ {”
解析位置 = 结束位置
.如果真结束
开始位置 = 结束位置 ' 如 “#样式{”对于上面的来说是结束 对于这个来说这才是刚刚开始 他需要的内容是{}中的内容
.如果真 (开始位置 ≠ -1) ' 这里判断代码如何执行!
结束位置 = 寻找文本 (文本, “}”, 开始位置, 假)
.如果真 (结束位置 ≠ -1)
成员文本 = 取文本中间 (文本, 开始位置 + 1, 结束位置 - 开始位置 - 1)
成员文本组 = 分割文本 (成员文本, “;”, )
显示文本 = 显示文本 + #换行符
.计次循环首 (取数组成员数 (成员文本组), 次数)
.如果 (寻找文本 (成员文本组 [次数], “:”, 1, 真) ≠ -1)
文本组 = 分割文本 (成员文本组 [次数], “:”, 2) ' 大写
.否则
文本组 = 分割文本 (成员文本组 [次数], “:”, 2) ' 小写
.如果结束
.如果真 (取数组成员数 (文本组) ≠ 2) ' 这些是人工排版 不需要
跳出循环 ()
.如果真结束
标签解释左 = 跑左标签库 (删全部空 (文本组 [1]))
标签解释右 = 跑右标签库 (删全部空 (文本组 [2]))
.如果真 (次数 = 1)
显示文本 = 显示文本 + “ ”
.如果真结束
显示文本 = 显示文本 + “ ” + 文本组 [1] + “:” + “ ” + 文本组 [2] + “;” + “ ” + “/*” + “<” + 标签解释左 + “>” + “ ” + 标签解释右 + “*/”

.如果真 (次数 ≠ 取数组成员数 (成员文本组))
显示文本 = 显示文本 + #换行符
.如果真结束

.计次循环尾 ()
显示文本 = 显示文本 + #换行符 + “ }” + #换行符
解析位置 = 结束位置 + 1 ' 这可能是个问题 { 长度是1
.如果真结束

.如果真结束
.如果 (上次位置 = 解析位置)
跳出循环 ()
.否则
上次位置 = 解析位置
.如果结束
解析进度 = 四舍五入 (解析位置 ÷ 取文本长度 (文本) × 100, 0)
.判断循环尾 ()
编辑框.内容 = 显示文本
解析进度 = 100
执行子程序 (解析完成, 100)
是否解析 = 假 ' 解析完成了