0

複数のテキスト ファイルを CAD 設計ファイルからマシンが読み取れるファイルに変換する変換プログラムを作成しようとしています。

各ファイルには複数の値があり、次のようにレイアウトされています。

X             -0.0001
Y              1.0500
Z              1.5700

LOCATION       0.0050

各ファイルは、マシンが移動して何かを行うことになっている場所を表します。出力は次のようになります。

X-0.0001Y1.0500Z1.5700L0.0050
Other information regarding position is here also.

したがって、これはかなり単純な変換です。しかし、私が疑問に思っているのは、それを行う最善の方法は何なのかということです。各ファイルを個別に変換してから結合しますか? その他の情報は、ファイルの末尾に配置する必要があります。したがって、さらにファイルがある場合は、次のようになります。

Location 1
Location 2
Location 1 parameters
location 2 parameters 

私はいくつかの異なる方法を試しましたが、それでも最善の方法を思い付くことができません。

基本的に私が求めているのは、これらのファイルを変換するための最良/最も効率的な方法は何かということです。これが紛らわしい場合は申し訳ありません。

プログラミング言語に vb.net を使用していることに注意してください

4

1 に答える 1

0

これが膨大な規模のプロジェクト (たとえば、数百万のファイル) である場合は、map reduceのようなものを検討することをお勧めします。

そうでない場合(私は推測しています)、次のように提案します。

各ファイルを順次解析し、結果を 2 つのファイルのそれぞれに追加 (追加) します。最後に、2 つのファイルを結合して完了です。

LOCATIONS_FILE (ファイル 1)

Location 1
Location 2
(etc)

METADATA_FILE (ファイル 2)

location 1 params
location 2 params
(etc)

すべてのファイルが解析されたら、FILE 2 の内容を FILE 1 の内容に追加します。

最終ファイル

Location 1
Location 2
(etc)
location 1 params
location 2 params
(etc)

VB.NET は使用しません。ただし、擬似コードは次のようになります。

fn parse_file(file,locations_filehandle, metadata_filehandle):
    file.extract_locations() -> append(locations_filehandle)
    file.extract_metadata() -> append(metadata_filehandle)

fn main():
   for file in files:
      parse_file(file,locations_filehandle,metadata_filehandle)

   finalfile=locations_filehandle.read() + metadata_filehandle.read()
   finalfile.writeToDisk()


main()
于 2013-04-23T20:05:58.043 に答える