見出し画像

【いきなりStudio13】(ソース・テンプレート編)Configファイルの読み込みでガチろう①~今回は、操作が長いんで、流れを一気にやる( ´∀` )

さてと、前回

で、

ファイルの存在を確認アクティビティ

まではやったので、今回はこれまでと少し構成を変えて、ここまで引っ張ってきたので、

Configファイルの流れを一気にやってく💃

細かいひとつひとつのアクティビティの

  • 説明

  • 考え方

  • こうした方がいい

  • そもそもConfigファイルって何

みたいなことは次回以降で順を追って説明する💃

☞実際に、1回自分で組んで動かした方
が理解が深まる( ´∀` )

モダンでやってる人は、別にオイラが嫌いなだけだし、

みたいなサイトもあるみたいだから、まあ参考になれば幸い( ´∀` )
んだば、早速


前回までのソース

シンプルの極み( ´∀` )

基本的な操作の流れ(間の確認は今回は抜き)

  1. ディクショナリ引数を準備する

  2. ディクショナリの初期化

  3. Excelアプリケーションスコープを設定

  4. Configファイルを取得する

  5. Configファイルの全シートを取得

  6. Configファイルの各シート分繰り返し

  7. 各シート全体を読み込み

  8. 各シートの各行を読み込み

  9. ディクショナリに各行の値を代入

  10. Configファイルを閉じる

  11. RobotMainに引き渡す

って感じかな( ´∀` )

以下の操作説明で、操作説明どおりに変数がうまく出てこないって人が出てくると思うので~~~

実際の操作の前に、先に完成形の変数パネルを見せておくけど、

スコープを図のとおりにしてみて~~~

あくまでも正常処理(Try)中の処理でしか使わない変数ばかりなんで、

敢えて、スコープを正常処理に設定してる

別にこれ以上広い

下2つ

にしてあげてもいいんだけど、

スコープはその変数を使う範囲で、一番広いものにしといた方がいい
(何かの処理が追加になって、その変数を使わないといけなくなることがある)
ので、今回は正常処理が適切かなと( ´∀` )

そろそろ今後色々面倒くさそうなので

パッケージをここで一気に更新しとく

ちょっと、時間がかかるんだよねえ( ;∀;)
毎回( ´∀` )

パッケージを管理からアップデートの通知が消えた
30分以上かかった( ;∀;)

じゃ早速、ひとつひとつ操作を

まずは、Configファイル読み込み用の処理を追加していくので、事前準備で、新しいシーケンスを追加

てな感じ
てな感じにしとく

1.ディクショナリ引数を準備する

今までは、プロパティから必要な変数や引数をCtrl+Kなんかで追加してたけど、今回はアクティビティに依拠しない引数を新規で追加するので

てな感じで開いて
ReadMKakuConfig

てな名前にして、

新規引数を追加
方向を出力に変更して
引数の型でBrowse for Types…をクリック
型の名前バーにDictionaryを入力して
Dictionary<TKey,TValue>を選んで、
このままOKを押すと、エラーになるので~~~~
TKeyにString、TValueにもStringでセットしてから
OKをクリック
てな感じで、設定出来た( ´∀` )

※ここが意外とインターネットの記事でも

当たり前すぎると思っているのか載っていないことが多いので、さっきと同じエラーメッセージが出てきたら、

ディクショナリの型指定(String、String)
が出来てるか

を見てみてね。開発現場でやっていたオイラも久しぶりだと意外と忘れる( ´∀` )

2.ディクショナリの初期化

アクティビティに紐付かない変数や引数は、そのまま代入しようとすると、入れ物が準備出来てないから、そのままだとエラーになる( ´∀` )なので、

初期化のシーケンスに
ディクショナリ引数を代入
👀💦

初期化のシーケンスに
てな感じで代入アクティビティを追加
左辺には、1で作ったディクショナリ引数を設定

右辺には、

new System.Collections.Generic.Dictionary(of String, String)

を入れて~~~

てな感じでOK
ホイ、エラーが消えました

3.Excelアプリケーションスコープを設定

で、ここからMKakuConfigファイル=Excelファイルを使うので~~~

Excelファイルを使う用のアクティビティを

ココに追加してくんだけど

インターネット上の記事なんかでは、ここではよく、

最近のアクティビティのモダン化

に合わせて、

Excelプロセススコープ

を使う人が多い。
んだけど、オイラは、既存のワークブックに変数を設定して、

ロボットの処理中に、MKakuConfigファイルを開きっぱにして、処理の間、他の人がファイルを編集できないようにしておきたい
(いや、ホント多いのよ。ロボの処理中に影響ないと思って、途中でファイル触る方が( ´∀` ))
ので、

Excelアプリケーションスコープ

コイツな( ´∀` )

を使う💃

嵌め込んだだけだと、てな感じでエラーになる

4.Configファイルを取得する

てな感じで
前回までに使ったMKakuConfigファイルの
フルパスを設定して~~~
エラーが消えた

プロパティの下にある

出力
Ctrl+K
てな感じで変数を設定
てな感じ

でブックの変数を出力しておく

てな感じで、変数の方もふさわしいものを
自動的に選んで作成できてるね👀

5.Configファイルの全シートを取得

てな感じでセット
てな感じで変数sheetsを設定

6.Configファイルの各シート分繰り返し

コイツを
てな感じでセット
さっきの全シートの変数sheetsをセット
プロパティがStringのままだと、
テキストとして扱うので
Objectに変更

7.各シート全体を読み込み

範囲を読み込みアクティビティを選んで
ここに追加
currentItemに変更
変更後。エラーが出てるので確認
てな感じで、String型になってないよ( ´∀` )
.ToStringでString型に変換して、OK
エラーが消えたのを確認💃

で、読み込んだ各シートの範囲をデータテーブルにセット

sheetsValueてな感じ

8.各シートの各行を読み込み

コイツを
てな感じでセット
さっきの変数をセット

でここまでで、データテーブルなんかがどうなっているかを確認したいので

てな感じにして
ブレークポイント

Main.xamlタブを選んで、ファイルを実行してみると、

ローカルのsheetsValueに値が入っているので、🖋マークをクリック
てな感じで、
左から1シート目のフォルダーシートの値が
セット出来てんね👀

でここまで確認出来たら、ブレークポイントを入れたメッセージをログアクティビティは要らないので削除

てな感じ

9.ディクショナリに各行の値を代入

代入アクティビティを
ココにセット

1で作って、2で初期化した引数

ReadMKakuConfigディクショナリ

を使って、

左辺:ReadMKakuConfig(CurrentRow("キー").ToString)
右辺:CurrentRow("値").ToString

て感じで

入力したらOKをクリック
右辺も入力したらOKをクリック
エラーが消えたのを確認

で、ここまででもう一回ローカルを確認したいので、

次のアクティビティにブレークポイントを設定

Main.xamlタブを選んで、ファイルを実行してみると、

ローカルの上から3番目のDictionaryに値が入ってそう
🖋をクリックして~~~
てな感じで、
値の入っている最後のシートの最後の項目まで
きちんと、ディクショナリ型で読み込めている
ことが確認出来たね👀

10.Configファイルを閉じる

さっきの操作までだと、
Excelが開きっぱでずっと閉じない
☞処理が終わってるのに、誰も触れない

なんてことが起きることがよくあるので、

ブックを閉じるアクティビティ

で、使い終わったExcelファイルを確実に閉じる
ようにしておく

☞当たり前の作法
だけど、忘れる人が多い( ´∀`)

コイツを
ココにセット

ちょっとわかりにくいので、今までのアクティビティをちょっと折りたたんで

ココな( ´∀` )

で、Excelアプリケーションスコープをセットしたときに、出力に設定してた変数を

てな感じで
ココにセット

Main.xamlタブを選んで、ファイルを実行してみると、

ディクショナリに値がセットされた直後に
確実にMKakuConfigファイルが閉じてる
のが確認できた( ´∀` )

11.RobotMainに引き渡す

コイツをダブルクリックで開いて~~~

ReadMKakuConfigを受け取る(入力用の)引数を追加してく

てな感じで、RobotMainConfigを追加して、
同じ型のディクショナリを選択
コイツが出てくるので、引数のインポートをクリック
てな感じで警告は消えたので
この詳細エディターをクリックして
上から三段目の空欄の値に
てな感じで
今作った引数をセットして、保存
次のアクティビティにブレークポイント
をセットして~~~

Main.xamlタブを選んで、ファイルを実行してみると、

てな感じで、RobotMainConfigディクショナリ
にも値が入ったことを確認
開くときっちり、ReadConfig.xamlのディクショナリ
と同じ値が引き継がれてんね( ´∀` )

で最後に、もう一回今度はプロジェクトを実行できちんと通るか確認

コイツな( ´∀` )
ホイ、綺麗に通りました。

最後に、引数を追加したことでMain.xamlにも実は、、、

てな感じで、警告が出てるので~~
引数をインポートをクリックして
警告を失くしておこう( ´∀` )

コッチは今回の操作で特に引き渡すものはないので、詳細エディターで何かを操作しなくてOK( ´∀` )

☞引数の管理について、
Studioはめっちゃ
神経質なんだよね~~( ´∀` )

操作説明としては以上( ´∀` )

要らなくなったブレークポイントを外す

ブレークポイントパネルを表示をクリック
てな感じで出てくるので~~~
ダブルクリック
選んだブレークポイント箇所に
ジャンプしてくれるので~~~
コイツを何回かクリックして外すだけ
同じ感じでコイツも外した~~~
ブレークポイントパネルに何もなくなったことを確認

毎回恒例のソース・リファクタリング

■リファクタリング前

粗っぽいねえ~~~( ´∀` )

■リファクタリング後

てな感じで、名前を変更して、注釈を入れただけ

今回追加した処理シーケンスを折りたたむと

いつもどおりめっちゃシンプル( ´∀` )

ソース・リファクタリング後に念のため、最後にもう一回プロジェクトを実行

よっしゃ問題なし( ´∀` )

今回は、以上( ´∀` )

さてと、次回は

今回使ったアクティビティを順番にひとつひとつ分解しながら解説してく💃
その前に、まずは、
そもそもConfigファイルの解説からかな
🧐
明日はデジタルフリーなのでまた来週( ´∀` )

いいなと思ったら応援しよう!