0

ArcGIS 9.3 Arcobject

我想在下面的字段中选择每个重复的 SID 的一行。(形状文件的属性表)

优先级为 R > S = I > 0
因此,在 SID 87 中,将选择 FID1。
(SID 88,状态将为 S+I)
(将选择 SID 89,FID 6)

请建议 VBA 线运行选择并感谢。

FID    SID    STATUS 
 1     87       R
 2     87       O
 3     88       I
 4     88       S
 5     89       I
 6     89       R      
 7     89       I
 8     89       S
4

1 回答 1

0

这可能不是最佳方式,但您可以尝试以下方法:

  1. 使用带有空 QueryFilter 的 ITable.Search 打开表中所有行的游标。
  2. 创建一个 DataStatistics 对象,并将光标传递给 IDataStatistics.Cursor 属性。
  3. 使用 IDataStatistics.UniqueValues 属性获取表中唯一 SID 值的集合。
  4. 对于每个唯一的 SID 值,使用 ITable.Search 打开一个游标,其中包含所有具有该 SID 的行。
  5. 使用您描述的逻辑,确定应添加到特定 SID 选择中的行的 FID。
  6. 创建一个 SelectionSet 对象,将您的表设置为一个对象。使用 Add 方法添加单行或使用 AddList 方法将行列表添加到选择集中。
  7. 使用此 SelectionSet 在 shapefile 上设置 IFeatureSelection.SelectionSet 属性。

抱歉,因为我是新手,我无法发布帮助的超链接,但这里是 ArcObjects 9.3 的 VB6 帮助的起始页:

http://resources.esri.com/help/9.3/arcgisengine/com_cpp/vb6_start.htm

于 2010-05-27T15:20:11.637 回答