やりたいこと
テストフォルダ内に名前が数値になっているファイルが5つ格納されているとします。
今回はこのファイル名から数値部分のみを取り出してリストへ格納後、
リストから最大値である「40」を取り出すという処理を行ってみたいと思います。
リストの使い方がわかると開発でできる幅がとても広がるのでぜひ参考にしてみてください!
リスト型の変数を作成する
まずはじめにリスト型の変数を作成します。
今回はlistフォルダ名という変数を設定しています。
変数の型にはリスト型を選択します。
型の参照からlistと検索すると、候補が出てくるのでSystem.Collections.Generic
を選択します。
選択後にリストに格納する値の型を聞かれます。
今回はファイル名から数値部分だけを取り出して、リストに追加したいので、
Int32を選択しています。
リストを初期化する
リスト型の変数を作成した後はリストを初期化する必要があります。
先ほどの変数作成だけでは、まだ箱の名前しか決まっていない状態なので、
値を格納するための箱を作るといったイメージです。
初期化はとても簡単です。
Assignアクティビティを用意して、以下のように入力するだけです。
listフォルダ名 = New List(Of Integer)
数値を格納するので、Of Integerとしていますが、
文字列を格納する場合は、Of Stringとなります。
リストに値を追加する
リストの初期化が終われば箱の中に値を追加していきます。
テストフォルダのパスを文字列型変数strフォルダパスに格納しておきます。
次に繰返し処理の中でフォルダ内のファイルパスを順番に取り出します。
ForEachアクティビティを用意して、コレクション内の各要素には以下を入力します。
directory.GetFiles(strフォルダパス)
取得したファイルパスはitemフォルダパスに格納しています。
ForEachアクティビティのプロパティで、TypeArgumentにはString型を設定します。
フォルダパスの取得方法について詳しく知りたい方はこちらの記事を参考にしてみてください(^^)
次に繰り返しの処理の中で、リストに値を追加するため、
AddToCollectionアクティビティを使用します。
このアクティビティを使用することで、作成したリストに値を追加することができます。
プロパティには以下の内容を入力します。
TypeArgument
→リストには数値を格納するためInt32を設定
コレクション
→値を追加するリストを指定。今回の場合はlistフォルダ名
項目
→リストに追加する値を設定。
今回は以下のように入力することでファイルパスからファイル名を拡張子なしで取得して、数値部分のみをリストに格納します。
Cint(Path.GetFileNameWithoutExtension(itemフォルダパス))
※リストから値を取得する際に最大値や最小値といった数値の比較をするため、
今回はCintで囲んで強制的に数値型に変換しています。
ファイルパスからファイル名を取得する方法、拡張子なしのファイル名を取得する方法については、以下の記事を参考にしてみてください( ..)φ
リストから最大値を取得する
これまでの手順で無事にリストに値を追加することができました。
イメージとしては、listフォルダ名には以下のように数字が格納されている状態です。
【1, 3, 5, 10, 40】
このリストから最大値の40を抜き出してみましょう。
方法は簡単です。
メッセージボックスを用意して以下のように入力して実行してみてください。
listフォルダ名.max
結果↓
無事に出力できましたか?(^^)
listフォルダ名.min
とすることで最小値を求めることもできます!
ひとこと
リストの使い方がわかると色々な場面で活躍します(^^)/
今回はファイルパスから、ファイル名をリストに格納しましたが、
Excelファイル内のデータをForEachRowアクティビティと組み合わせて使うことで、
一気にリストに格納して加工することも可能です。
アクティビティの検索でコレクションと検索すると、以下のようにリストを扱うためのアクティビティが表示されます。
今回の追加方法が理解できれば、他のアクティビティも使いこなすことができると思うので、ぜひ使ってみてください^^
リストに似ている配列の操作方法についても紹介しているので、こちらも参考にしてみてください!