Csvのテーブルから別のテーブルに行追加したい

n件存在するcsvに対し、1件ずつcsv読取りを行い、datatableに格納し、
そのdatatableの行単位で繰り返し処理を行い、
値を編集し、構築済のdatatableへ行追加する処理を行いたいのですが、
最後の行追加だけうまくいきません
ご教示いただけないでしょうか。
よろしくお願いいたします。

▼実際の処理


▼やりたいこと

最後の行の追加のエラーは何でしょう?

1 Like

データ行追加の入力の列配列にRow2を入れたことによるエラーとなっています

おぉ!ここには、配列変数を記述するのです。行そのものを指定してはダメですね。

ちょっと今検証できないのですが、
Row2.iTemArray
としてみるか、

代入アクティビティで、格納先のデータテーブルに.NewRowメソッドで新しい行領域を作成。そこに列の情報を格納し、最後の行追加をしてあげる(オーソドックスな方法)。

1 Like

こんにちは

イテレート中のDataTableに行を追加しようとするとRuntime errorになると
思います。

条件分岐内の代入で、dt_csvの中身は既に変更されていますが、それをさらにdt_csvに追加する
必要はあるのでしょうか?(そもそも行追加不要?)あるいは追加先が間違っていませんでしょうか?

1 Like

csvが複数件存在しており、csvのファイルパスを格納しているデータテーブルの行ごとに繰り返し処理を行い、
その中で1件1件csvファイルを読み込み、データを加工し、データテーブルに行追加したいのですが、
現状だとcsv毎にdt_csvの中が上書きされてしまい、1件のcsvデータしかdt_csvに保持されなくなってしまいます・・・
なので、別のデータテーブルを用意し、そこに加工されたデータ行を追加したいと考えております
別の良いやり方があればご教示いただければ嬉しいです
(下の図だとdt_csvがdt_csvFileになっています。)

なるほど・・・今まで行そのものを追加しようとしていました。
配列でなくてはいけないのですね

Row2.iTemArrayとしたところ以下のエラーが出ました・・・
image
image
申し訳ありませんが、後者のやり方がいまいちわからず、
お手数をおかけいたしますがご教示いただければ幸いです
(理解が乏しく申し訳ありません・・・)

1 Like

こんにちは

要件を完全に理解していませんが、おそらくこんな感じになるのではないかと

データテーブルにマージで個々のdt_csvをdtResultに集約しています。iは一番外のforEachRowのIndexです。各変数のスコープは広めにとってください。

1 Like

こんな方法で…

Csvのテーブルから別のテーブルに行追加したい.zip (3.2 キロバイト)

データ行を追加アクティビティで、.ItemArrayで行けました!
サンプルは、現在のインデックスが2で割り切れたらDT2へ行追加するものです

1 Like

すみません、「iは一番外のforEachRowのIndex」の部分がよくわからなかったのですが、
繰り返しの件数という理解でよかったでしょうか?

こんにちは

現在のインデックスプロパティにInt32型変数としてiを定義しておいてください。

1 Like

やりたいことが再現できました!
大変お世話になりました、ありがとうございます!

1 Like

再現できました!!
いつもありがとうございます!
またお世話になるかと思いますが今後ともよろしくお願いいたします。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.