ようこそゲストさん | ログイン |

掲示板

トップページ > 過去ログ > 記事閲覧
中間ファイル図形の抽出
日時: 2008/04/08 13:19
名前: GEOSISサポート受付

中間ファイルに取得した図形を、ラインタイプ別に抽出する(できるだけ高速に)方法でご指導ください。
求めるデータは、中間ファイル内に存在するラインタイプの代表です。
「FGPICKOUT」では元のファイルにデータが残ってしまいます。
「EX系」には、レコードを削除したりするコマンドが見当たりません。
同じラインタイプを切り出してしまうようなコマンドがあればよいのですが、次のような流れを考えてみました、現在の案です。

@中間ファイルの先頭に移動(FGSEEK)、先頭のラインタイプを取得する
Aそのラインタイプを変数に取得して、そのレコードを削除する(FGDELCUR)
B次のレコードに移動(FGSEEK)
C移動先のレコードが同じラインタイプタイプか確認し(FGGETINFO)
D同じであれば・・・そのレコードを削除(FGDELCUR)して、次のレコードに移動、ライン番号が違う場合は・・・次のレコードに移動(FGSEEK)
Eこれを、中間ファイルの最終レコードまで行う
F続いて、残ったレコードの先頭に移動して・・・@そのレコードのラインタイプを取得する。
↑これを、中間ファイルのレコードがなくなるまで繰り返す。
こんな感じなのでしょうか?

ただ、これをライン、ポリゴン、シンボル別に行いたいし、中間ファイル内のレコードも多くなると考えられるので、できるだけ高速で行いたいのですが、何か良いアイデアをご指導ください。

Page: 1 |

Re: 中間ファイル図形の抽出 ( No.1 )
日時: 2008/04/08 13:19
名前: NCG

既存の中間ファイルを削除するのではなく、必要な情報を新しい中間ファイルに書き込む流れのほうが良いと考えられます。
前処理として、FGPICKOUTで図形要素ごとの中間ファイルを作成します。
作成した各要素ごとの中間ファイル毎に1)〜5)処理を行います。
1)FGEXOPENで既存ファイルを開く
2)FGEXCREATEで書き込み用中間ファイルを作成
3)FGEXINFOでラインタイプを取得
4)取得したラインタイプを変数(配列)に保存、変数に保存したラインタイプをチェックして  書き込んでいないラインタイプの場合は5)の処理を行う。
5)FGEXGETで中間ファイルの情報を取得、FGEXPUTで書き込み用中間ファイルに登録。
3)〜5)を中間ファイルの最後のレコードまで繰り返す。
※3)のFGGETINFOの処理でラインタイプのほかに、図形要素の取得を行い、変数(配列)に格納することで、事前に要素ごとに中間ファイルを分けずに処理を行うことも可能となります。

Page: 1 |



| 利用規約 |

(C) 2024 AS Locus INC.