易语言快速统计编辑框字数( 二 )


文章插图

52-3 JScript剧本号令    长文本常量 : #JS号令     内容如下:
function 求字数全(参1){参1=参1.replace(new RegExp(" ","gm"),"") //先删全数空格return 参1.replace(new RegExp("[\n\r]+","gm"),"").length; //再删换行求字数};function 求字数中文(参1)//删去所有非中文求字数 。 {return 参1.replace(new RegExp("[^\u4e00-\u9fa5]+","gm"),"").length;};function 删除指定文本(参1,参2) //参数2可所以表达式{return 参1.replace(new RegExp(参2,"gm"),"");};

易语言快速统计编辑框字数

文章插图

6三、多线程js体例 。
3-1
易在多线程下挪用JS剧本 , 会没有任何结果 , 返回空文本或返回0 。
解决法子是增添两个dll能解决(CoUninitialize 和 CoInitialize)
运行是正常了 , 但新问题又来了 , 多线程当作单线程 。
百度是如许诠释这对夫妻DLL(必需配对利用)的:
CoInitialize告诉 Windows以单线程的体例建立com对象 。
颠末测试也确实是如许 , 同时启动多个线执行简单代码 , 法式立即死失落 。
最终 , 解决法子是 , 用类模块体例 。
插入两个DLL,代码如下:
.版本 2
.DLL号令 卸载COM, , "ole32.dll", "CoUninitialize", , 卸载COM 同加载COM配对利用
.DLL号令 加载COM, , "ole32.dll", "CoInitialize", , 加载COM 告诉 Windows以单线程的体例建立com对象 , 解决多线程内JS剧本代码无效问题    .参数 pvReserved, 整数型, , 值为0

易语言快速统计编辑框字数

文章插图

易语言快速统计编辑框字数

文章插图

73-2
选择易本家儿菜单-插入-类模块  , 点击 , 并把下面的代码粘贴进方才新建的类模块
注:粘贴前删除两个默认子法式   _初始化  和  _销毁   防止反复 。 粘贴完点窜一下类名 。
代码如下:
.版本 2
.法式集 JS剧本类模块.法式集变量 JS剧本, 对象
.子法式 _初始化, , , 当基于本类的对象被建立后 , 此方式会被主动挪用 , 
加载COM (0)JS剧本.建立 (“ScriptControl”, )JS剧本.写属性 (“Language”, “JScript”)
.子法式 _销毁, , , 当基于本类的对象被销毁前 , 此方式会被主动挪用
JS剧本.断根 ()卸载COM ()
.子法式 剧本说话, 文本型, 公开, 设置或获取剧本引擎诠释的说话 , 可供选择的属性值:JScript  VBScript.参数 说话名, 文本型, 可空, 若是 , 供给的参数文本 , 既不等于 JScript 也不等于 VBScript 会设置为 JScript
.判定起头 (是否为空 (说话名) = 真)    返回 (JS剧本.读文本属性 (“Language”, )).默认
    .若是真 (说话名 ≠ “JScript” 且 说话名 ≠ “VBScript”)        说话名 = “JScript”    .若是真竣事    返回 (到文本 (JS剧本.写属性 (“Language”, 说话名))).判定竣事
.子法式 超时, 整数型, , Timeout , 设置或返回时候(毫秒) , 此时候后用户可选择中止剧本代码的执行或许可代码继续执行 。 .参数 欲写入属性值, 整数型, 可空, -1 暗示直到执行完才返回 。

推荐阅读