foreachの中でマッピングのtableを使いまわしたい

Avatar
R7038XX

foreachでループさせて、以下の処理を繰り返しています。

1.CSVを読み込み

2.処理(同じファイルの内容を繰り返し処理)

3.CSVで書き込み(1に戻る)

都度、更新したCSVを読み込むのが効率が悪いので、

マッピング処理結果をforeach内で使いまわしたいのですが、

どのように組めばよいのでしょうか?

この記事は役に立ちましたか?

0が役に立ったといっています

コメント

  • Avatar
    かわかみ

    R7038XXさん こんにちは。

    現状の処理は↓みたいな感じでしょうか。

    foreachを使うとなると・・・・

    になるのかなー?と思ったりしました。

    質問の意図と違っていたらすいません!!

    0
  • Avatar
    R7038XX

    ご回答ありがとうございます。

    言葉足らずで申し訳ございません。

    マッピングした結果を、再度foreach内で利用したいです。

    処理概要でいいますと、

    foreach自体は、別の情報を繰り返ししており(マスタ情報)、

    読み込んだCSVに対して、マスタの総当たりでマッピング処理を行いたいです。

    現状は以下の通りです

    1.マスタ読み込み

    2.繰り返し開始

    3.ファイルA読み込み ←次のマスタを適用するために5で書き込んだファイルを再読込

    4.マッピング    ←マスタ適用

    5.ファイルA書き込み

    6.2に戻る

    ※ファイルAに対して、マスタ数分読み書きが発生するので効率が悪い

     

    0
  • Avatar
    hagakure

    R7038XX さん

    たとえば、「4. マッピング」の結果を変数に入れて、次のループで「3.ファイルA読み込み」ではなく、変数からの読み取りにできないか (CSV 読み書きを変数の読み書きにして処理コストを下げたい) ということでしょうか?

    (もしそうだとすると)
    テーブルモデル型のデータは XML 型変数に格納できますが、現状の XML 型変数はスクリプト間のやり取りに使われるので、途中の Mapper では使用できないんですよね。

    なので、私の知識上では、残念ながら CSV 読み書きを無くすことは難しいと思います。

    1
  • Avatar
    R7038XX

    そうですか、とても残念です

    ご丁寧な回答ありがとうございました

    0
  • Avatar
    httky

    マスタがCSVやDBだったら

    • CSVファイルによる置換
    • DBテーブルによる置換
    • SQL実行によるデータ取得

    あたりで、マスタの検索結果を使用した処理が行えると思いますよ。

    そうなると、foreach自体を行わなくてよいかもしれませんね。

    0

ログインしてコメントを残してください。