-5

ship.txt というファイルを読み取り、そのファイルからエントリ (1 行に 1 つずつ) を取得し、それらをファイル拡張子 *.map (test.map など) のファイルと比較して、常に行末にある一致。次に、それらの座標 (実際にはメートル単位の経度と緯度の数値のペアになります) を取得し、それらの座標を perl スクリプトに挿入すると、ファイルが生成されます。次に、perl スクリプトによって生成されたファイルを読み取り、perl スクリプトの副産物からの情報を使用して、別のファイル内にあるエントリを削除したいと思います。

最初から始めましょう。一度に 1 ステップ ステップ 1:

  1. 「test.map」と「ships.txt」を比較するバッチが欲しいです。一致が見つかった場合、一致が常に test.map の行末にある場合は、マップ座標を取得したいと思います。

test.map は次のようになります。

コード:

 Pt0=14497903.00,-813490.00,0.00,Mark 1
 Pt1=14417253.00,-812258.00,0.00,Mark 2
 etc...

ship.txt は次のようになります。

 Mark 1
 Mark 3
 etc...

したがって、バッチで ship.txt を読み取り、「Mark 1」または「Mark 2」などのエントリを探して、test.map で見つかった場合は、" ,0.00,Mark #" 座標には小数点以下 2 桁があり、負の値もあることに注意してください。

これはどのように行われますか?

4

1 に答える 1

3

これがどのように行われるかです。

perl でファイルを読み取りまたは書き込み用に開く方法を次に示します。次に、ファイルを 1 行ずつ読み取る必要があります。text::csvを使用してファイルを読み取る方が良いかもしれません。

split または text::csv を使用して、最初のファイル行から配列を作成し、それをハッシュに格納します。キーは、そのファイルの最後のフィールドである必要があります。

2 番目のファイルを反復処理する場合、このハッシュを使用して最初のファイルでチェックするかどうかを確認できます。

次に、結果をファイルに書き込みます。

コードを書いてみてください。特定の質問がある場合は、新しい質問を作成できます。

または、誰かを雇ってこれを行うこともできます。

よろしく

于 2013-03-05T08:08:07.883 に答える