cj4025 发表于 2011-9-11 15:49:08

请教语音库只读单个数字的方法。

复制了一段数字,语音库就读成了1百3十9亿9千9百9十9万9千9百9十9这样。能只读数字么?求方法。

kevinch 发表于 2011-9-11 16:42:45

HotKeySet("{esc}","ExitMe")

$sp = ObjCreate("SAPI.SPVoice")
$sp.volume = 100
While True
    Sleep(100)
    $str = ClipGet()
    If StringLen($str) > 0 Then
      $str=StringRegExpReplace($str,"(\d)","$1 ")
      $sp.speak($str)
      ClipPut("")
    EndIf
WEnd
      
Func ExitMe()
    Exit 0
EndFunc这个试下

紫色风林 发表于 2011-9-12 20:10:44

谢谢,学习了

xms77 发表于 2011-9-12 20:40:19

本帖最后由 xms77 于 2011-9-12 20:41 编辑

回复 2# kevinch
2楼的高人,来顶你的肺。学习你的代码,就是那句正则的没有看懂,请教"$1 "是什么意思?

kevinch 发表于 2011-9-12 21:20:58

回复kevinch
2楼的高人,来顶你的肺。学习你的代码,就是那句正则的没有看懂,请教"$1 "是什么意思?
xms77 发表于 2011-9-12 20:40 http://www.autoitx.com/images/common/back.gif
兄弟,先分清这句话是好是坏吧!
"$1 "就是把替换内容的第一个分组保留,并在后面添加个空格。

xms77 发表于 2011-9-12 22:16:35

回复 5# kevinch
这行代码就是在每个数字的后面加一个空格符,谢谢!懂了

cj4025 发表于 2011-9-13 16:02:21

回复 2# kevinch



谢谢你的帮助,我经过学习,罗嗦的写成了这样,,                $str = StringRegExpReplace($str, "(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})", "$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,")

netegg 发表于 2011-9-13 18:49:15

回复 7# cj4025
精神可嘉,方法就不评论了
页: [1]
查看完整版本: 请教语音库只读单个数字的方法。