明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1567|回复: 3

[求助]字符个数计数

[复制链接]
发表于 2006-7-17 19:14:00 | 显示全部楼层 |阅读模式

现在想一次先输出T的数量,然后输出R的数量,请问该怎么改?

 Sub co()

    Dim SSet As AcadSelectionSet
 
    Dim obj As AcadText
    Dim ptcen(0 To 2) As Double
    Dim endPoint1(0 To 2) As Double
    Dim endPoint2(0 To 2) As Double
    Dim cline As AcadLine
    Dim lineHalfLength As Double
    Dim groupCode(0 To 4) As Integer
    Dim dataValue(0 To 4) As Variant
    Dim i As Integer
  
   
    On Error Resume Next
  
    If Not IsNull(ThisDrawing.SelectionSets.Item("tex")) Then
       Set SSet = ThisDrawing.SelectionSets.Item("tex")
       SSet.Delete
    End If
   
    Set SSet = ThisDrawing.SelectionSets.Add("ArcsCirclesEllipses")
   
    '设置选择过滤器
    groupCode(0) = -4
    dataValue(0) = "<or"
    groupCode(1) = 0
    dataValue(1) = "0"
    groupCode(2) = 0
    dataValue(2) = "text"
    groupCode(3) = 0
    dataValue(3) = "0"
    groupCode(4) = -4
    dataValue(4) = "or>"
   
    '提示用户选择
    ThisDrawing.Utility.Prompt "选择" & vbCr
    SSet.SelectOnScreen groupCode, dataValue
   
    For Each obj In SSet
    If obj.TextString = "T" Then
    i = i + 1
  
    End If
  
    obj.Update
 
    MsgBox "共有T" & i
   If obj.TextString = "R" Then
    i = i + 1
  
    End If
  
    obj.Update
 
    MsgBox "共有R" & i
    Next obj
   
   
End Sub

发表于 2006-7-18 12:33:00 | 显示全部楼层

你能解释下下这里是什么意思么?

groupCode(1) = 0
dataValue(1) = "0"

 楼主| 发表于 2006-7-21 21:46:00 | 显示全部楼层

groupCode(1) = 0
dataValue(1) = "0"

是原过滤器过滤多种数据!


发表于 2006-7-21 23:58:00 | 显示全部楼层

没有这种做法:)

groupCode数组表示DXF组码

dataValue数组表示对应组码的数值

组码0表示一个实体的图元类型

关于这些具体可以看看DXF组码的帮助部分

好像上次做过一次的

设置过滤器为

0,"Text",1,"T"

就可以过滤出T的数量

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

本版积分规则

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

GMT+8, 2024-11-27 01:25 , Processed in 0.172264 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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