0

ArcGIS 9.3 アークオブジェクト

下のフィールドで、重複した各 SID の 1 行を選択したいと思います。(シェープファイルの属性テーブル)

優先順位は R > S = I > 0
したがって、SID 87 のうち、FID1 が選択されます。
(SID 88、STATUS は 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. null QueryFilter で ITable.Search を使用して、テーブル内のすべての行のカーソルを開きます。
  2. DataStatistics オブジェクトを作成し、カーソルを IDataStatistics.Cursor プロパティに渡します。
  3. IDataStatistics.UniqueValues プロパティを使用して、テーブル内の一意の SID 値のセットを取得します。
  4. 一意の SID 値ごとに、ITable.Search を使用して、その SID を持つすべての行を含むカーソルを開きます。
  5. 説明したロジックを使用して、特定の SID の選択に追加する必要がある行の FID を決定します。
  6. テーブルをオブジェクトとして設定して、SelectionSet オブジェクトを作成します。Add メソッドを使用して 1 つの行を追加するか、AddList メソッドを使用して行のリストを選択セットに追加します。
  7. この SelectionSet を使用して、シェープファイルに 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 に答える