gzhhongquan 发表于 2007-3-29 10:44:00

字符与字符串的问题

<p>Sub txt()</p><p>Dim returnObj As AcadObject<br/>&nbsp;&nbsp;&nbsp; Dim basePnt As Variant</p><p>&nbsp;&nbsp;&nbsp; ThisDrawing.Utility.GetEntity returnObj, basePnt, "Select an object"<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim holdStr As AcadText, Str As AcadText<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '获得图形中文字对象位于查找字符串之前的字符串<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; holdStr = Left(returnObj, 3)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '获得文字对象位于查找字符串之后的字符串<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Str = Mid(returnObj, 4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; MsgBox "The left texts are: " &amp; holdStr.TextString, , "GetEntity Example"<br/>&nbsp; <br/>End Sub</p><p>为什么MsgBox最后不出来呢,是不是Left只截取字符,不是一个字符串,所以不能显示。</p>

42272846 发表于 2007-3-29 14:17:00

<p>首先,你的目的是什么?</p><p>看你的意思,是找出所选文本左边三位与三位后边的文本。</p><p>但是acadtext不是这么用的,他是一个图元文件,不能直接给它值的。要实现你这个功能,你只要定义它为string就可以了。</p><p>还有语句你不能直接使用returnObj,因为它是一个对象,你应该用它的textstring属性。</p><p>你说的原因不对。字符操作函数left,mid,right等都返回了字符串,和以前的字符串是一样的对象。</p><p>Sub txt()<br/>Dim returnObj As AcadObject<br/>&nbsp;&nbsp;&nbsp; Dim basePnt As Variant</p><p>&nbsp;&nbsp;&nbsp; ThisDrawing.Utility.GetEntity returnObj, basePnt, "Select an object"<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim holdStr As String, Str As String<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '获得图形中文字对象位于查找字符串之前的字符串<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; holdStr = Left(returnObj.TextString, 3)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '获得文字对象位于查找字符串之后的字符串<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Str = Mid(returnObj.TextString, 4)<br/>&nbsp;&nbsp;&nbsp; MsgBox "The left texts are:'" &amp; holdStr &amp; "'", , "GetEntity Example"<br/>&nbsp; <br/>End Sub<br/></p>

gzhhongquan 发表于 2007-3-29 14:49:00

你说的很对,我试了好几次也慢慢的有这个想法了,就是添加监视,然后看它的值,结果发现都是“”和空值,我就想是中间环节出了问题。看你给我的结果就是我没有弄清楚对象的类型和属性,还是要多看看书。谢谢了。
页: [1]
查看完整版本: 字符与字符串的问题