質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Blue Prism

Blue Prismは、複数ロボットの統括管理RPAです。各企業の事業部門に分散されているロボットに対し、プロセスの制御・監視・実行・スケジュールを行うコンソールでロボットの運用を推進。内部統制を強化できます。

Q&A

解決済

1回答

987閲覧

CSVを"|"区切りでコレクションに処理を早く格納する方法

kuta

総合スコア10

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Blue Prism

Blue Prismは、複数ロボットの統括管理RPAです。各企業の事業部門に分散されているロボットに対し、プロセスの制御・監視・実行・スケジュールを行うコンソールでロボットの運用を推進。内部統制を強化できます。

0グッド

0クリップ

投稿2020/03/30 00:50

お世話になっております。

掲題の通りなのですが、
CSVファイルをパイプ[|]区切りでコレクションに早い処理で格納する方法をご教示ください。
現状下記方法で実装したのですが、実際は800行程CSVがあり、処理に時間がかかってしまいます。
サクっと一発で取り込む方法など、ご存じの方がいらっしゃいましたら
お力をお借りしたく、宜しくお願いいたします。

■取り込もうとしているCSVデータサンプル(実際は800行程あります)
1|123456|789012|20200310221332| |12345678
2|123456|789012|20200310221332| |91011121
3|123456|789012|20200310221332| |12345678
4|123456|789012|20200310221332| |12345678
5|123456|789012|20200310221332| |12345678
6|123456|789012|20200310221332| |12345678
7|123456|789012|20200310221332| |12345678
8|123456|789012|20200310221332| |12345678
9|123456|789012|20200310221332| |12345678
10|123456|789012|20200310221332| |12345678

■実際に試した内容-----------------------------------------------------
1.[File Management]オブジェクトの[Get Text As Collection]でコレクションに格納
(この時点では区切られていない状態)
2.ループで1行ずつ取り出しパイプで区切り、別のコレクションに格納する。
以下行数だけループ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tsubaki961

2020/03/30 01:26

処理に使用する言語、速いの基準となるスコアを教えてください
kuta

2020/03/30 02:31

tsubaki961様 ご回答ありがとうございます。 >処理に使用する言語  →VB.NETです。 >速いの基準となるスコア  →1分以内完了を目指したいです。
tsubaki961

2020/03/30 04:54

>>速いの基準となるスコア > →1分以内完了を目指したいです。 現在のコードそのものと現在どの程度時間がかかっているのか教えてほしいです
kuta

2020/04/01 08:55

tsubaki961様 ご連絡が遅くなり申し訳ありません。 現在3分ほどかかっていたのを、30秒以内を目指したい、という内容でした。 次回質問する際には気を付けて投稿いたします。 ありがとうございました。
guest

回答1

0

ベストアンサー

それは|区切りのままでなくてはいけないのでしょうか?
|をカンマに予め置換して、普通のカンマ区切りのCSVにしてから、Utility-Strinigs の Get CSV as Collectionで取り込めば一発だと思うのですが……。

「時間がかかる」というのは、ループを800回まわすからってことですよね?

置換してとりこんでっていうのは、こういう手順のことです。
たとえばこういうデータとして

text

1名前|ふりがな|アドレス|年齢|都道府県|携帯|キャリア 2菅原 だん吉|すがわら だんきち|sugawara_dankichi@example.com|71|福岡県|080-5165-5697|ドコモ 3堀 寛|ほり ひろし|hori_hiroshi@example.com|21|栃木県|090-7262-6025|ソフトバンク 4滝口 恵望子|たきぐち えみこ|takiguchi_emiko@example.com|72|静岡県|080-6455-8100|au 5白鳥 知世|しらとり ちせ|shiratori_chise@example.com|45|兵庫県|090-6910-7735|ドコモ 6寺島 あい|てらじま あい|terajima_ai@example.com|20|福岡県|080-5716-7840|ドコモ 7片桐 朝陽|かたぎり あさひ|katagiri_asahi@example.com|73|青森県|090-2949-1889|ドコモ 8岡山 雄太|おかやま ゆうた|okayama_yuuta@example.com|59|北海道|080-8607-9718|ドコモ 9村中 宏行|むらなか ひろゆき|muranaka_hiroyuki@example.com|73|秋田県|090-6492-6810|ドコモ 10松下 かおり|まつした かおり|matsushita_kaori@example.com|72|宮城県|080-3910-9239|ドコモ

フローはこんな感じ
「Read All Text From File」の出力は「Text」に入ります。
フロー
計算ステージの中身はこれ
計算ステージ
最後ちゃんとコレクションに入ります。
Output Collection

これだとループはまわさないので、秒で終わります。

投稿2020/03/31 05:00

編集2020/04/01 00:06
sumire_cl

総合スコア228

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuta

2020/04/01 08:53

sumire_cl様 ありがとうございます。正にこの処理が行いたかったです。 置換も思いつかず恥ずかしい限りです・・・助かりました。
sumire_cl

2020/04/02 23:42

実は私も以前に 「不要なループをまわしすぎて時間かかる」 という内容の質問をしたことがあったので、それを思い出したのです。 https://teratail.com/questions/158556 Blue Prismって、そんなにコードをガリガリ書かなくても大丈夫のところがいいところの一つだと思うので(コードで書いちゃうとメンテがたいへんになる) VBOで解決できるところはそれでやるように気を付けています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問