本コンテンツをダウンロードする前にこちらの利用条件を必ずご確認いただき、内容に同意をしたうえでダウンロードしてください。 また、"コンテンツの利用条件"は下のボタンからダウンロードし、お手元で保管してください。
辞書操作関連ライブラリを使用して、CSVデータをもとに辞書を作成し、その辞書の情報を検索取得するサンプルシナリオ(以降、本サンプルシナリオ)について説明します。
本サンプルシナリオは、以下の処理を行います。
本サンプルシナリオでは、以下のWinActorモジュールを使用します。
(プチライブラリはこちらからダウンロードできます)
本サンプルシナリオは以下の環境で動作確認しています。
本サンプルシナリオの実施方法は以下の通りです。
ダウンロードしたZIPファイルを展開し、展開したフォルダに含まれている本サンプルシナリオをWinActorで読み込みます。
事前の設定が必須な変数は下記のとおりです。(実線赤枠内)
以下の変数は必要に応じて設定・変更してください。(点線赤枠内)
変数一覧
WinActorで本サンプルシナリオを実行します。
検索結果と取得情報を検索用データファイルへ書き込み、保存後に閉じ、本サンプルシナリオは終了します。
検索結果及び辞書からの取得情報が、検索用データファイルの「検索結果列」「取得情報列」の各セルに書き込まれています。
本サンプルシナリオでは、変数が正しく指定されなかった場合、エラーメッセージが出力されます。
詳細については、エラーメッセージ一覧を参照してください。
本サンプルシナリオで使用している実装テクニックについて解説します。
辞書作成用データ
検索用データ
本サンプルシナリオは以下の順で動作します。
【1】辞書作成用データの最終行取得
辞書作成用データの最終行を取得します。本サンプルシナリオでは、都道府県の列(変数:データ_情報a(都道府県)列)で取得しています。辞書操作(情報更新)の繰り返し条件として使用します。
【2】辞書作成
辞書作成用データの各行の「郵便番号」を「キー」、地名(「都道府県」「市区」「町村」を連結)を「情報」とした「辞書」の作成(辞書操作(情報更新))を行います。詳細は「4.(詳細)【2】辞書作成について」にて説明します。
【3】辞書情報取得
本サンプルシナリオで作成した「辞書」から「情報」を検索します。検索用データファイル内の検索対象値(郵便番号)を「キー」として、紐づけられた「情報」(地名)を検索します。検索結果と取得情報は、検索用データファイルに書き込みます。 詳細は「5.(詳細)【3】辞書情報取得について」にて説明します。
【4】検索用データファイルを上書きして閉じる
検索結果と取得情報が書き込まれた検索用データファイルを上書きして閉じます。
メインフローチャート
サブルーチン「辞書作成」は大きく以下のグループに分かれます。
① 辞書初期化(操作前準備)
② 繰り返しグループ 辞書作成用データ最終行まで繰り返す
③ 現在の読取対象行の「登録キー値」と「登録情報値」取得
④ キー重複の調査と重複時の処理
⑤ 辞書作成(辞書へキーと情報の登録)
⑥ 辞書作成用データファイルを保存せず閉じる
サブルーチングループ「辞書作成」
① 辞書初期化(操作前準備)
辞書操作(情報更新)を行う前に、ライブラリ「辞書操作(初期化)」を設置し、辞書情報を初期化します。本サンプルシナリオではサブルーチン「辞書作成」の「繰り返しグループ 辞書作成用データ最終行まで繰り返す」内に「辞書操作(情報更新)」がありますので、ループに入る前に配置しています。
「辞書操作(初期化)」の注釈
② 繰り返しグループ 辞書作成用データ最終行まで繰り返す
プロパティにて、繰り返しの「回数」を変数「データ最終行」(行番号)にします。「カウンタ」に変数「読取対象行」を設置します。(本サンプルシナリオで使用している辞書作成用データの開始行の行番号(読取対象行の開始値)は「1」)
繰り返し_最終行まで
③ 現在の読取対象行の「登録キー値」と「登録情報値」取得
現在の「読取対象行」のデータから「登録キー値」(郵便番号)と「登録情報値」(地名)を取得します。
(1)郵便番号列(C列)の値を取得(値の格納先変数名:「登録キー値」)
(2)都道府県列(G列)、市区列(H列)、町村列(I列)の値を取得(各値の格納先変数名:「情報値a(都道府県)」、「情報値b(市区)」、「情報値c(町村)」)
(3)地名(情報)の作成(文字列連結)を行う
町村列(I列)の値で分岐
・連結対象外文字列(「以下に記載のない場合」)であった場合
⇒(4)変数「情報値a(都道府県)」、「情報値b(市区)」の各値を文字列連結して「地名」を作成(連結した値の格納先変数:「登録情報値」)
・連結対象外文字列(「以下に記載のない場合」)でない場合
⇒(5)変数「情報値a(都道府県)」、「情報値b(市区)」、「情報値c(町村)」の各値を文字列連結して「地名」を作成(連結した値の格納先変数:「登録情報値」)
読取対象行の各値の取得
④ キー重複の調査と重複時の処理
1つの辞書の中に重複したキーは使えません。本サンプルシナリオでは、辞書作成用データの郵便番号に重複があった場合は、対応する情報(地名)を半角カンマ区切りで連結し、1つのキーに紐づけます。
キーの重複の調査と処理は、次のように行います。
(1)現在の読取対象行の「登録キー値」を、辞書から検索(「辞書操作(情報取得)」)
(取得した「情報」の格納先変数:「登録対象存在チェック」)
この時点で辞書未作成(指定した辞書が存在しない)の場合、取得情報は「空白」となる
(2)検索の結果で分岐
(2-1)情報が取得された場合(その「登録キー値」は、すでに登録されている(重複している))
⇒同じキーで登録しなおす準備((3)(4))を行う
(2-2)情報が取得されなかった(空白が返された)場合(その「登録キー値」は、まだ登録されていない(重複していない))
⇒そのまま 「⑤ 辞書作成(辞書へキーと情報の登録)」へ進む
(3)辞書から既存のキーを削除
現在の「登録キー値」と同じキー(重複するキー)を辞書から削除
・プロパティ設定
辞書名:変数「辞書名」(「Dic_郵便番号から地名」)
キー:変数「登録キー値」
辞書有無:「辞書有無」
削除結果:「削除結果」
(4)既存の情報と現在の「登録情報値」を連結
(1)で取得した既存の情報(変数:登録対象存在チェック)と、現在の「登録情報値」を半角カンマ区切りで連結
キー重複調査と解消
⑤ 辞書作成(辞書へキーと情報の登録)
以下の変数を使用して辞書の作成(辞書操作(情報更新))を行います。
・変数「登録キー値」(「③ 現在の読取対象行の「登録キー値」と「登録情報値」取得」にて取得)
・変数「登録情報値」(「④ キー重複の調査と重複時の処理」にて取得)
「辞書操作(情報更新)」(辞書「Dic_郵便番号から地名」へのキーと情報の登録)は1件(1キー1情報)ずつ行われます。
・プロパティ設定
辞書名:変数「辞書名」(変数値一覧で初期値設定「Dic_郵便番号から地名」)
キー:変数「登録キー値」
情報:変数「登録情報値」
「辞書操作(情報更新)」注釈
⑥ 辞書作成用データファイルを保存せず閉じる
繰り返しループを抜けた後、辞書作成用データファイルを保存せずに閉じます。
本サンプルシナリオで作成した「辞書」から「情報」を取得します。
検索用データファイルに記載されている郵便番号(検索対象値)を「キー」として、紐づけられた地名(情報)を取得します。
① 検索対象値の取得
② 後判定繰り返しグループ 検索対象値が空白でなければ繰り返す
③ 分岐グループ 検索対象値があれば検索する(検索対象値が空白なら辞書検索はしない)
④ 辞書情報取得
⑤ 検索対象行を+1進める
辞書情報取得
① 検索対象値の取得
検索用データファイルの「検索対象値列」の各行の値を取得し、変数「検索対象値」に格納します。
② 後判定繰り返しグループ 検索対象値が空白でなければ繰り返す
現在の「検索対象行」の「検索対象値」が空白でないことを繰り返し条件とします。
「検索用データファイル」のデータ開始行の行番号は「2」です。「検索対象行」のカウントアップは、ループ内に置いたノード「カウントアップ」で行います。
後判定繰返プロパティ
③ 分岐グループ 検索対象値があれば検索する(検索対象値が空白なら辞書検索はしない)
「検索対象値」があれば(空白でなければ)辞書情報取得(検索)を行います。「検索対象値」が空白だった場合、辞書の検索(情報取得)は行わず、検査対象行のカウントアップへ進みます。
分岐条件_検索対象値がある(空白でない)場合
④ 辞書情報取得
「検索対象値」をキーとして、作成した辞書の検索を行います。
取得した情報は、検索用データファイルの「取得情報列」の各行に書き込みます。
(1)入力した検索対象値をキーにして辞書の情報取得
・「辞書操作(情報取得)」プロパティ設定
辞書名:変数「辞書名」(変数値一覧で初期値設定「Dic_郵便番号から地名」)
キー:変数「検索対象値」
情報:変数「取得情報」
(2)取得情報の有無で分岐
検索用データファイルの現在の「検索対象行」の「検索結果列」「取得情報列」のセルに、検索結果、取得情報を書き込む(辞書内に該当するキーがなければ、取得情報は空白)
(2-1)情報が取得された場合
⇒検索結果と取得情報を各セルに書き込む((3)(4)を行う)
(2-2)情報が取得されなかった(空白が返された)場合
⇒検索結果のみを各セルに書き込む((5)を行う)
(3)取得情報がある場合は、検索結果列に「登録あり」と書き込む
(4)取得した情報を、取得情報列に書き込む
(5)取得情報がない(空白)場合は、検索結果列に「登録なし」と書き込む(取得情報列への書き込みはなし)
辞書情報取得
⑤ 検索対象行を+1進める
「検索対象行」を加算値「1」でカウントアップし、行を進めます。
辞書操作(情報更新)では、キーが異なれば、同じ「情報」の登録はできます。
下記の表データをもとに、辞書「サンプル辞書」を作成(辞書操作(情報更新))するとします。
このデータでは、キーの重複はありませんが、情報は2行目と4行目の「ぶどう」が重複しています。
この場合、キー「grape」に情報「ぶどう」、キー「raisin」に情報「ぶどう」を、それぞれ紐づけることができます。
「サンプル辞書」データ
辞書の登録内容を確認したい場合は、「辞書操作(ダンプ)」を使います。(本サンプルシナリオでは設置していません。)
辞書作成終了以降のシナリオフローチャート内に設置してください。
辞書の内容が記載されたテキストファイルが作成されます。
参考_辞書ダンプ
版数 | 日付 | 修正内容 | ||||||
---|---|---|---|---|---|---|---|---|
|
|
|
||||||
|
|
|
本コンテンツをダウンロードする前にこちらの利用条件を必ずご確認いただき、内容に同意をしたうえでダウンロードしてください。 また、"コンテンツの利用条件"は下のボタンからダウンロードし、お手元で保管してください。
WinActorのライブラリを使用して、ゼロパディングされた数値をカウントアップする方法を学習するためのサンプルシナリオです。
詳しくはこちらWinActorのライブラリを使用して、複数のCSV・Excelファイルを1つのCSVファイルにまとめるサンプルシナリオからローカル変数の使用法を理解し...
詳しくはこちら複数フォルダから検索条件に該当した最新ファイルを別フォルダにコピーするサンプルシナリオとなります。
詳しくはこちら指定したファイルのデータを2次元配列ライブラリの変数に格納し、データ一覧にインポートした値との比較を繰り返すサンプルシナリオです。
詳しくはこちら