本帖最后由 q97012791 于 2013-12-11 01:57 编辑
函数说明:
文本_取随机标点(取出个数,标点类型,排除列表)
功能: 生成随机标点符号,但不包括空格符。
取出个数:要取出多少个标点
标点类型:0=英文标点;1=中文标点;2=特殊符号;3=混合标点。默认为0,英文标点。
排除列表:需要排除不生成的标点, 多个标点请用空格分开
没有使用模块,纯源码:
[e]
.版本 2
.子程序 文本_取随机标点, 文本型, , 生成随机标点符号,但不包括空格符。
.参数 取出个数, 整数型, , 要取出多少个标点
.参数 标点类型, 整数型, 可空, 0=英文标点;1=中文标点;2=特殊符号;3=混合标点。默认为0,英文标点。
.参数 排除的标点, 文本型, 可空, 要排除的标点,多个标点请用空格分开
.局部变量 英文标点, 文本型
.局部变量 中文标点, 文本型
.局部变量 特殊符号, 文本型
.局部变量 符号文本, 文本型
.局部变量 列表内容, 文本型, , "0"
.局部变量 排除列表, 文本型, , "0"
.局部变量 生成内容, 文本型
.局部变量 生成标点, 文本型
.局部变量 排除匹配, 逻辑型
.局部变量 计次, 整数型
英文标点 = “! # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ ” + #引号
中文标点 = “! # $ % & 、 · ( ) 。 * + , - . / : ; ‘ ’ … ‖ — = ( ) < > ? @ [ ] \ ^ _ ` |  ̄ { } ~ ” + #左引号 + “ ” + #右引号
特殊符号 = “ˇ ¨ 〃 々 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】 ± × ÷ ∧ ∨ ∑ ∏ ∪ ∩ ∈ ∷ √ ⊥ ∥ ∠ ⌒ ⊙ ∫ ∮ ≡ ≌ ≈ ∽ ”
特殊符号 = 特殊符号 + “∝ ≠ ≮ ≯ ≤ ≥ ∞ ∵ ∴ ♂ ♀ ° ′ ″ ℃ ¤ £ ‰ § № ☆ ★ ○ ● ◎ ◇ ◆ □ ■ △ ▲ ※ → ← ↑ ↓ 〓”
'一行实在太长,还是分两行吧
.如果真 (是否为空 (标点类型) = 真)
标点类型 = 0
.如果真结束
.如果真 (标点类型 = 0)
符号文本 = 英文标点
.如果真结束
.如果真 (标点类型 = 1)
符号文本 = 中文标点
.如果真结束
.如果真 (标点类型 = 2)
符号文本 = 特殊符号
.如果真结束
.如果真 (标点类型 = 3)
符号文本 = 英文标点 + “ ” + 中文标点 + “ ” + 特殊符号
.如果真结束
列表内容 = 分割文本 (符号文本, “ ”, )
排除列表 = 分割文本 (排除的标点, “ ”, )
生成内容 = “”
.计次循环首 (取出个数, )
.循环判断首 ()
置随机数种子 ()
生成标点 = 列表内容 [取随机数 (1, 取数组成员数 (列表内容))]
排除匹配 = 假
.如果真 (取数组成员数 (排除列表) > 0)
.计次循环首 (取数组成员数 (排除列表), 计次)
.如果真 (排除列表 [计次] = 生成标点)
排除匹配 = 真
跳出循环 ()
.如果真结束
.计次循环尾 ()
.如果真结束
.循环判断尾 (排除匹配 = 真)
生成内容 = 生成内容 + 生成标点
.计次循环尾 ()
返回 (生成内容)
[/e]
|