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

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

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

UWSCは、Windowsの作業を自動化するソフトです。マウスとキー入力を記録して代行することが可能。スクリプト形式により自由に編集することもできます。スケジュール機能を持ち、Excelとの連携も可能です。

Q&A

解決済

1回答

1177閲覧

UWSCで関数の戻り値として連想配列を返したい

akitasoran

総合スコア20

UWSC

UWSCは、Windowsの作業を自動化するソフトです。マウスとキー入力を記録して代行することが可能。スクリプト形式により自由に編集することもできます。スケジュール機能を持ち、Excelとの連携も可能です。

0グッド

0クリップ

投稿2022/11/27 15:29

編集2022/11/27 15:31

タイトルの通り、連想配列を戻り値として返すのがやりたいことです。

関数に連想配列を渡すことはできたのですが、戻り値には指定できませんでした。普通の配列は以下のようにSLICE関数で書くと返すことができるのですが、連想配列の場合エラーが出てしまいます。

UWSC

1RESULT = SLICE(array)
変数: associativeが定義されていません

理想としてはPHPのarray_flipのような動作を行いたいです。

PHP: array_flip - Manual

以下が現状わかる範囲で書いたプログラムです。連想配列を参照引数で渡し、直接配列の中身を書き換えています。これを戻り値(RESULT)で返すのがやりたいことです。

UWSC

1PROCEDURE arrayFlip(Var associative[]) 2 HASHTBL tmp 3 FOR i = 0 TO LENGTH(associative)-1 4 tmp[associative[i, HASH_VAL]] = associative[i, HASH_KEY] 5 NEXT 6 associative = HASH_REMOVEALL 7 FOR i = 0 TO LENGTH(tmp)-1 8 associative[tmp[i, HASH_KEY]] = tmp[i, HASH_VAL] 9 NEXT 10FEND

UWSCの解説しているサイトなど色々と見てみたのですが、連想配列について詳しく書いているサイトが見つけられませんでした。

回答よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

これを戻り値(RESULT)で返すのがやりたいことです。

自分も FUNCTIONRESULT に連想配列を指定してみましたが、エラーになりました。
おそらく、UWSC で連想配列を関数の戻り値に指定することはできないのではないでしょうか。

バグなのか仕様なのかわかりませんが、下記サイトにあった arrayFlip も質問者さんと同様の実装となっているようですので、「できなさそう」というのが自分の感想です。

■ arrayFlip | UWSC辞典
https://uwsc.jp/udf/arrayflip/

投稿2022/11/28 15:11

cx20

総合スコア4633

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

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

akitasoran

2022/11/30 09:34

質問してからも色々と試してみましたが、戻り値に連想配列は指定できなさそうでした。 できることは限られてきますが、参照引数での書き換えでなんとかしようと思います。 回答ありがとうございました。
cx20

2022/12/01 14:21

あぁ、もしかして、https://uwsc.jp/ の中の人でしょうか・・ 釈迦に説法でしたね。すみません。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問