找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5264|回复: 20

[原创] 【飞鸟集】简繁转化

[复制链接]

已领礼包: 8121个

财富等级: 富甲天下

发表于 2013-4-20 15:08:41 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 Highflybird 于 2013-4-21 20:44 编辑

可能已经有这样的程序了。但要收费或要注册的,所以我发表了lisp程序在此,希望他们能谅解。这个程序没有什么技巧而言。经过测试,速度应该还可以。
有什么建议或者纰漏之处,请大家指出。

开源软件,转载请注明作者和来源!!!

demo.gif

说明:此程序用于繁体字和简体字的相互转化,可以用于AutoCAD 的字符。实际上简体字和繁体字并不是一一对应的,有时候可能一个简体字对应多个繁体字,而繁体字一般来说只对应一个简 体字。
程序中GB 码是指的的中国大陆的简体中文,GBK 码是指的的香港的繁体中文,BIG5是台湾的繁体中文。如果应用于CAD 图形 转换,文字中出现问号或者乱码,可能是由于没有相应字体的支持,请更换文字样式。譬如:ChineseSet.shx,gbcbig.shx.
                                      
另外首先确保你做了如下工作:(在winxp以上版本如win7,win8,可能需要管理员权限)
首先注册了插件,如果不会注册,我提供了注册程序。                           
然后用vlax-create-object 创建一个实例,用vlax-invoke调用其方法.
方法有: GB_GBK,GBK_GB,GB_BIG5,BIG5_GB,GBK_BIG5,BIG5_GBK等.  
其功能顾名思义,如:GB_GBK就是把GB简体转化为GBK繁体。

程序还提供了可以用对话框形式的转化。
这个是对话框演示演示。
已经包含了32位和64位的版本,应该可以在CAD的各个版本上运行。      

2148178.jpg

[pcode=lisp,true];;;=============================================================
;;; 功能:用对话框形式转化两岸三地的文字                        
;;;=============================================================
(defun C:DLG (/ dlg)
  (setq dlg (vlax-create-object "CharConverter.Dialog"))
  (if dlg
    (progn
      (vlax-invoke dlg 'doit)
      (vlax-release-object dlg)
    )
  )
  (princ)
)[/pcode]
在VBA里面可以这样用。
首先引用,然后就可以了。
[pcode=vb,true] Sub test()
    Dim a As DialogTest
    Set a = CreateObject("CharConverter.Dialog")
    With a
        .doit
    End With
End Sub[/pcode]
如果不用DLL的话,可以用LISP,其核心代码:
[pcode=lisp,true];;;=============================================================
;;; 功能:简体字符串和繁体字符串互相转化(此程序为LISP,无需插件)
;;; 输入:字符串                                                
;;; 输出:被转化后的字符串                                      
;;;=============================================================
(defun Text:CharConvert (text IsRev / Index NewTxt Str From to)
  (if IsRev
    (setq From TraditionalCharset
          To SimpleCharSet
    )
    (setq From SimpleCharSet
          To TraditionalCharset
    )
  )
  (setq NewTxt "")
  (while (/= text "")
    (setq str (substr text 1 1))
    (if (> (ascii str) 128)
      (progn
        (setq str (substr text 1 2))
        (setq text (substr text 3))
        (if (setq index (VL-POSITION str From))
          (setq str (nth index To))
        )
      )
      (setq str (substr text 1 1)
            text (substr text 2)
      )
    )
    (setq newtxt (strcat newtxt str))
  )
  newtxt
)
[/pcode]

附件在此,包括了LISP程序和DLL程序以及测试样例。
请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:CharConverter.rar 
下载次数:108  文件大小:305.46 KB 
下载权限: 不限 以上  [免费赚D豆]


=============================================
2013.04.21更新:现在可以提供对含文字的CAD图元操作,包括:
单行,多行文字,引线,属性,标注,公差,表格,块及其嵌套块。
LISP源码发行了三个版本,GB,GBK,BIG5,简体,繁体,台湾繁体版本

评分

参与人数 1D豆 +5 贡献 +3 收起 理由
炫翔 + 5 + 3 很给力!经验;技术要点;资料分享奖!

查看全部评分

本帖被以下淘专辑推荐:

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

已领礼包: 1742个

财富等级: 堆金积玉

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

使用道具 举报

发表于 2013-4-20 15:41:27 | 显示全部楼层
真是好贴,非常棒!支持精品!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8121个

财富等级: 富甲天下

 楼主| 发表于 2013-4-20 20:54:44 | 显示全部楼层
程序说明:
显然用  vlax-invoke 方法比LISP方法要快。
经测试:用vlax-invoke 的方法基本跟字符串长度无关,而LISP 方法跟字符串长度有关,越长越耗时。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-4-21 02:07:26 | 显示全部楼层
不错不错,能否支持多重引线里的文字(多重引线内的多行文件或属性块文字)?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-4-21 08:30:06 | 显示全部楼层
支持高飞老师,每次看到您的帖子,都有新的收获{:soso_e100:}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8121个

财富等级: 富甲天下

 楼主| 发表于 2013-4-21 12:37:32 | 显示全部楼层
2013.04.21更新:现在可以提供对含文字的CAD图元操作,包括:
单行,多行文字,引线,属性,标注,公差,表格,块及其嵌套块。
LISP源码发行了三个版本,GB,GB5,BIG5,简体,繁体,台湾繁体版本.
请重新下载附件。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-4-22 07:50:32 | 显示全部楼层
CAD中显示繁体要 Font 支持的,简繁转化还可以利用Word
用VBS实现繁体中文和简体中文转换

标签: TCSCConverter, VB, VBS, VBScript, 简体, 繁体, 转换



标题: 用VBS实现繁体中文和简体中文转换
作者: Demon
链接: http://demon.tw/my-work/vbs-tcscconverter-class.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。

Word 语言工具中有中文简繁转换功能,但是不能批量进行,所以写了一个实现繁体中文和简体中文相互转换 VBS 类。



Class TCSCConverter
    Private Word, Doc
   
    'Author: Demon
    'Date: 2011/12/13
    'Website: http://demon.tw

    Private Sub Class_Initialize()
        Set Word = CreateObject("Word.Application")
    End Sub
   
    Private Sub Class_Terminate()
        Word.Quit
        Set Word = Nothing
    End Sub
   
    'Traditional Chinese To Simplified Chinese
    Public Function TC2SC(str)
        Set Doc = Word.Documents.Add
        Word.Selection.TypeText str
        Doc.Range.TCSCConverter 1, True
        TC2SC = Replace(Doc.Range.Text, vbCr, vbCrLf)
        TC2SC = Left(TC2SC, Len(TC2SC) - 2)
        Doc.Saved = True
        Doc.Close
        Set Doc = Nothing
    End Function
   
    'Simplified Chinese To Traditional Chinese
    Public Function SC2TC(str)
        Set Doc = Word.Documents.Add
        Word.Selection.TypeText str
        Doc.Range.TCSCConverter 0, True, True
        SC2TC = Replace(Doc.Range.Text, vbCr, vbCrLf)
        SC2TC = Left(SC2TC, Len(SC2TC) - 2)
        Doc.Saved = True
        Doc.Close
        Set Doc = Nothing
    End Function
   
End Class


示例代码:

Set TCSC = New TCSCConverter
WScript.Echo TCSC.SC2TC("我下面给你吃")
WScript.Echo TCSC.TC2SC("我下麵給你吃")
WScript.Echo TCSC.SC2TC("我干妹妹的故事")
WScript.Echo TCSC.TC2SC("我乾妹妹的故事"

评分

参与人数 1D豆 +5 收起 理由
wowan1314 + 5 国学大师!哈哈

查看全部评分

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

使用道具 举报

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

使用道具 举报

发表于 2013-4-22 18:15:53 | 显示全部楼层
WScript.Echo TCSC.SC2TC("我下面给你吃")
WScript.Echo TCSC.TC2SC("我下麵給你吃")
WScript.Echo TCSC.SC2TC("我干妹妹的故事")
WScript.Echo TCSC.TC2SC("我乾妹妹的故事"

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

使用道具 举报

已领礼包: 3394个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

发表于 2013-11-18 21:57:48 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 12:23 , Processed in 0.519970 second(s), 70 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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