明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1433|回复: 2

字符与字符串的问题

[复制链接]
发表于 2007-3-29 10:44:00 | 显示全部楼层 |阅读模式

Sub txt()

Dim returnObj As AcadObject
    Dim basePnt As Variant

    ThisDrawing.Utility.GetEntity returnObj, basePnt, "Select an object"
   
    Dim holdStr As AcadText, Str As AcadText
  
        '获得图形中文字对象位于查找字符串之前的字符串
        holdStr = Left(returnObj, 3)
        '获得文字对象位于查找字符串之后的字符串
       Str = Mid(returnObj, 4)
      
    MsgBox "The left texts are: " & holdStr.TextString, , "GetEntity Example"
 
End Sub

为什么MsgBox最后不出来呢,是不是Left只截取字符,不是一个字符串,所以不能显示。

发表于 2007-3-29 14:17:00 | 显示全部楼层

首先,你的目的是什么?

看你的意思,是找出所选文本左边三位与三位后边的文本。

但是acadtext不是这么用的,他是一个图元文件,不能直接给它值的。要实现你这个功能,你只要定义它为string就可以了。

还有语句你不能直接使用returnObj,因为它是一个对象,你应该用它的textstring属性。

你说的原因不对。字符操作函数left,mid,right等都返回了字符串,和以前的字符串是一样的对象。

Sub txt()
Dim returnObj As AcadObject
    Dim basePnt As Variant

    ThisDrawing.Utility.GetEntity returnObj, basePnt, "Select an object"
   
    Dim holdStr As String, Str As String
  
        '获得图形中文字对象位于查找字符串之前的字符串
        holdStr = Left(returnObj.TextString, 3)
        '获得文字对象位于查找字符串之后的字符串
       Str = Mid(returnObj.TextString, 4)
    MsgBox "The left texts are:'" & holdStr & "'", , "GetEntity Example"
 
End Sub

 楼主| 发表于 2007-3-29 14:49:00 | 显示全部楼层
你说的很对,我试了好几次也慢慢的有这个想法了,就是添加监视,然后看它的值,结果发现都是“”和空值,我就想是中间环节出了问题。看你给我的结果就是我没有弄清楚对象的类型和属性,还是要多看看书。谢谢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-22 05:22 , Processed in 0.150765 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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