まいど!福地です。
今回の内容ですが、「 値の保持(CSVファイル出力) 」です!
僕が開発の仕事で地味に悩んだ内容になってます。
何かと言いますと、CSVデータの出力する時、 (1行でズラッと並べるのではなく) 改行を入れて出力するという作業になります。
一見簡単そうに聞こえるのですが、相変わらず頭が賢くないので躓いてしましました。
それでは早速取り掛かってみましょう(^^♪
データを抽出するところまで作成してみよう!
僕は競馬が好きなので、競馬サイトを使って説明していきたいと思います! (今回はJRAより、今日行われた高松宮記念の結果を拾ってきたいと思います)
やりたいこと:レース結果を抽出し、データベースに保存するためのCSVデータを作りたい
いやいやそんなん簡単ですやん!と思われるかもしれませんが、 これまた僕の頭を悩ませてくれました笑
ということで、まずはJRAのサイトを読み込み、値を抽出するところまで作成します↓
①タイプ「結果」を作成し、その中に変数「着順」「馬名」「騎手」「タイム」を作成する。
②変数「レース結果」を作成する(タイプ「結果」の値をまとめて入れるため)
③変数「レース結果抽出用」を作成する(変数「レース結果」を蓄積するため。作成時に「グローバル」にチェックを入れる)
※「グローバル」にチェックを入れると?→ ブランチやループを跨いでも変数値が自動的にクリアされない
④ページを読み込み、高松宮記念の結果(1着目)を抽出する。
変数を変数に放り込もう!
は?と思われた方、 ボキャブラリーが少なくて申し訳ございません。
簡単に説明しますと、レコード(行)のデータを取ってくる変数(ここでは「レース結果」)を、レコードのデータを蓄積する用の変数 (ここでは「レース結果抽出用」)に放り込むということです 。
先ほどの続きで進めていきますね↓
⑤「変数の割当」ステップを入れる
「エクスプレッション」を選択し、編集クリック
⑥レコード(1行分。「,」で区切る)を設定する
1着目の結果が取れているかを確認する
⑦変数に「レース結果」を選択する
1行分のデータが格納されます
⑧再度「変数の割当」ステップを入れる
先ほどと同じく「エクスプレッション」を選択
⑨「レース結果抽出用」に「レース結果」を入れ込む設定をする※ここがポイント!
これで変数「レース結果抽出用」の中に「レース結果」を入れ込む準備が整いました!
最後にCSVを出力しましょう(^^)/
CSVファイルを出力してみましょう!
まとまったデータを出力するためのステップを作ります。
⑩ブランチを追加し、「ファイル出力」ステップを入れる
⑪「Write File」ステップの設定
ファイルコンテンツは「レース結果抽出用」に、エンコーディングは「Windows日本語」にする
ファイル名はとりあえず「出力したいフォルダ」と「任意のファイル名」を設定したフルパスをいれます(ここでは「C:\Users\*****\Desktop\Horse\レース結果\データ結果\レース結果.csv」と設定)
ここまでできれば一度デバッグしてみてください!
デバッグ終了後、設定したフォルダ内にCSVファイルが出力されていることを確認し、メモ帳などのエディタで開いてみると・・・
やりました!ちゃんと「,」で区切られ、かつ改行もできましたね!(^^)!
これでDAを使って何かシステムに入れる時も加工しやすくなったのではないでしょうか。
ここまでお付き合いいただきありがとうございましたm(_ _)m
最後に
皆さんどうでしたでしょうか?咄嗟に思いついたやり方なので、もっと効率のいい方法がある気がしてならないので、もし「こんなんあるよ!」って方いらっしゃいましたらすぐ教えてください🙋♂️
話は変わるのですが、訪問者数を見れるのですが、一定数訪問者様がいらっしゃることに大変喜びを感じております!本当にありがとうございます( ;∀;)
これからも皆さんの開発の手助けになるような内容を発信していきますので、今後ともどうぞよろしくお願いします👪
コメント
ファイル出力で、ファイルコンテンツでコンバーター選択
→出力値フォーマットの処理
→CSV追加
を選択せずにこちらの方法をとるのって、なにか理由がありますか?
ゆ。さん
コメントありがとうございます!
>>ファイル出力で、ファイルコンテンツでコンバーター選択
→出力値フォーマットの処理
→CSV追加
理由は特にありません、というか完全にその方法を忘れておりましたむしろ教えていただきありがとうございます( ;∀;)
ご指摘の通りのほうが正しく使える気がします!
貴重なご意見本当にありがとうございます!
今後ともどうぞよろしくお願いいたしますm(__)m