找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 852|回复: 13

[求助]:如何输入汉语拼音及音调

[复制链接]
发表于 2002-11-30 10:37:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
各位大侠:

       小虾遇到棘手事,请各位大侠不吝赐教:儿子(一年级)写关于奥运的文章,需在文章输入汉语拼音及音调,我却不知如何处理?Help me!!!!Thanks!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 181个

财富等级: 日进斗金

发表于 2002-11-30 10:42:54 | 显示全部楼层
查看Word的帮助文档。

  1.   [FONT=courier new]
  2. 拼音指南
  3. 利用“拼音指南”功能,可在中文字符上标注汉语拼音。如果安装了 Microsoft 中文输入法 2.0 或更高版本,则能够自动将汉语拼音标注在选定的中文文字上。

  4. 如果想使用这项功能,首先请选定一段文字。然后单击“格式”菜单的“中文版式”子菜单中的“拼音指南”命令。如果安装了 Microsoft 中文输入法 2.0 或其后续版本,则汉语拼音就会自动标记在选定的中文字符上。

  5. 一次最多只能选定 30 个字符并自动标记拼音。

  6.   [/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-30 10:57:36 | 显示全部楼层
楼上的大侠:

     先谢谢大侠help。请问如何象他书本上的标注方法,即有音调,而非数字表示音调?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2002-11-30 12:57:25 | 显示全部楼层
Word中没有直接的方法可以这样。
先按上面的做法生成拼音,然后运行下面的代码就可以了。

  1.   [FONT=courier new]

  2. Sub Test()
  3.     Dim f As Field
  4.     Dim c As String
  5.     Dim i As Integer
  6.     For Each f In ActiveDocument.Fields
  7.         c = Mid(f.Code, InStrRev(f.Code, "(") + 1, Len(f.Code) - (InStrRev(f.Code, "(") + 1) - 3)
  8.         If InStr(c, "a") Then
  9.             If IsNumeric(Right(c, 1)) Then c = Left(c, InStr(c, "a") - 1) & Choose(Right(c, 1), "ā", "á", "ǎ", "à") & Mid(c, InStr(c, "a") + 1)
  10.         ElseIf InStr(c, "o") Then
  11.             If IsNumeric(Right(c, 1)) Then c = Left(c, InStr(c, "o") - 1) & Choose(Right(c, 1), "ō", "ó", "ǒ", "ò") & Mid(c, InStr(c, "o") + 1)
  12.         ElseIf InStr(c, "e") Then
  13.             If IsNumeric(Right(c, 1)) Then c = Left(c, InStr(c, "e") - 1) & Choose(Right(c, 1), "ē", "é", "ě", "è") & Mid(c, InStr(c, "e") + 1)
  14.         ElseIf InStr(c, "i") Then
  15.             If IsNumeric(Right(c, 1)) Then c = Left(c, InStr(c, "i") - 1) & Choose(Right(c, 1), "ī", "í", "ǐ", "ì") & Mid(c, InStr(c, "i") + 1)
  16.         ElseIf InStr(c, "u") Then
  17.             If IsNumeric(Right(c, 1)) Then c = Left(c, InStr(c, "u") - 1) & Choose(Right(c, 1), "ū", "ú", "ǔ", "ù") & Mid(c, InStr(c, "u") + 1)
  18.         ElseIf InStr(c, "ü") Then
  19.             If IsNumeric(Right(c, 1)) Then c = Left(c, InStr(c, "ü") - 1) & Choose(Right(c, 1), "ǖ", "ǘ", "ǚ", "ǜ") & Mid(c, InStr(c, "ü") + 1)
  20.         End If
  21.         c = Left(c, Len(c) - 1)
  22.         f.Code.Text = Left(f.Code, InStrRev(f.Code, "(")) & c & Right(f.Code, 3)
  23.         f.Update
  24.     Next
  25.     Set f = Nothing
  26. End Sub
  27.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-30 13:19:44 | 显示全部楼层
感谢大侠帮助。
在问一个幼稚的问题(您千万别晕倒,我是一个菜鸟):你给的程序到哪里运行?怎么用?可以再教我一下吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2002-11-30 13:43:11 | 显示全部楼层
在“工具”的下拉菜单中,选择“宏——Visual Basic 编辑器”中,直接粘贴上面的代码,按F5运行就可以了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-30 19:14:33 | 显示全部楼层
楼上的大侠:

     非常感谢。方法很对,但是却不知为何提示有很多错误,难道它不能一次编译成功吗?一次只能编译几个字吗?望不吝赐教。小虾在此鞠躬了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2002-11-30 19:38:55 | 显示全部楼层
一次最多只能选定30 个字符,指拼音字符,所以标注拼音时只能几个字几个字的处理,这是软件本身的限制。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-30 19:45:24 | 显示全部楼层
已经搞好。非常感谢大侠的帮助。亦感谢论坛给我学习的机会。愿论坛越来越火!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2002-11-30 20:02:44 | 显示全部楼层
上午的程序是有问题,只能处理单个汉字,对于两个或两个以上的词组就会出错,等以后完善了再上传吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2002-11-30 20:29:37 | 显示全部楼层
更新后的程序,使用时请测试一下准不准确。

  1.   [FONT=courier new]

  2. Sub Test()
  3.     Dim f As Field
  4.     Dim c As String
  5.     Dim i As Integer
  6.     Dim n As Integer
  7.     Dim tc As String
  8.     Dim ts As String
  9.     Dim j As Integer
  10.     For Each f In ActiveDocument.Fields
  11.         ts = ""
  12.         i = InStrRev(f.Code, "(")
  13.         tc = Mid(f.Code, i + 1, InStr(i + 1, f.Code, ")") - (i + 1))
  14.         n = Len(f.Code) - InStr(i + 1, f.Code, ")") - 2
  15.         For i = 1 To n
  16.             For j = 1 To Len(tc)
  17.                 If IsNumeric(Mid(tc, j, 1)) Then
  18.                     c = Left(tc, j)
  19.                     tc = Mid(tc, j + 1)
  20.                     Exit For
  21.                 End If
  22.             Next
  23.             If InStr(c, "a") Then
  24.                 If IsNumeric(Right(c, 1)) Then c = Left(c, InStr(c, "a") - 1) & Choose(Right(c, 1), "ā", "á", "ǎ", "à") & Mid(c, InStr(c, "a") + 1)
  25.             ElseIf InStr(c, "o") Then
  26.                 If IsNumeric(Right(c, 1)) Then c = Left(c, InStr(c, "o") - 1) & Choose(Right(c, 1), "ō", "ó", "ǒ", "ò") & Mid(c, InStr(c, "o") + 1)
  27.             ElseIf InStr(c, "e") Then
  28.                 If IsNumeric(Right(c, 1)) Then c = Left(c, InStr(c, "e") - 1) & Choose(Right(c, 1), "ē", "é", "ě", "è") & Mid(c, InStr(c, "e") + 1)
  29.             ElseIf InStr(c, "i") Then
  30.                 If IsNumeric(Right(c, 1)) Then c = Left(c, InStr(c, "i") - 1) & Choose(Right(c, 1), "ī", "í", "ǐ", "ì") & Mid(c, InStr(c, "i") + 1)
  31.             ElseIf InStr(c, "u") Then
  32.                 If IsNumeric(Right(c, 1)) Then c = Left(c, InStr(c, "u") - 1) & Choose(Right(c, 1), "ū", "ú", "ǔ", "ù") & Mid(c, InStr(c, "u") + 1)
  33.             ElseIf InStr(c, "ü") Then
  34.                 If IsNumeric(Right(c, 1)) Then c = Left(c, InStr(c, "ü") - 1) & Choose(Right(c, 1), "ǖ", "ǘ", "ǚ", "ǜ") & Mid(c, InStr(c, "ü") + 1)
  35.             End If
  36.             c = Left(c, Len(c) - 1)
  37.             ts = ts & c
  38.         Next
  39.         i = InStrRev(f.Code, "(")
  40.         f.Code.Text = Left(f.Code, i) & ts & Mid(f.Code, InStr(i + 1, f.Code, ")"))
  41.         f.Update
  42.     Next
  43.     Set f = Nothing
  44. End Sub

  45.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-11-30 20:50:36 | 显示全部楼层
又学了一招,很好。祝还有这样的例子。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2002-11-30 21:06:44 | 显示全部楼层
其实平常我们对软件的使用仅是一部分的功能,多多对软件探索一下,会发现有很多新的东西,也可以学到很多有用的经验,使工作变的轻松。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-12-1 07:31:00 | 显示全部楼层
改进后的程序测试后没有问题,对词组的辨别很好。
发现对“的de5”的处理成"d"可能有问题。再一次感谢斑竹的帮助。.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-24 10:34 , Processed in 0.672998 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表