UWSCの質問です。


親スクリプトで用いる変数の値を使って子スクリプトで有る計算を行い、計算結果を親スクリプトに渡すにはどのようにすれば良いのでしょうか。

グローバル変数を使えば良いのかなと思い、下記のスクリプトを書いて試して見ましたが、計算結果のCの値が"0"となって、思うような結果が得られません。
出来ましたらスクリプトを書いて頂ければ助かりますm(_ _)m


親スクリプト
-------------------
public a
public b
public c

a = INPUT("a?")
b = INPUT("b?")

Exec("keisan.exe")

print " C = " + c
-------------------------------おわり

子スクリプト(keisan.exe)
--------------------------------
public a
public b
public c

c = a + b
-------------------------おわり

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/11/06 17:03:51
  • 終了:2013/11/06 21:11:03

ベストアンサー

id:gizmo5 No.1

gizmo5回答回数484ベストアンサー獲得回数1382013/11/06 17:25:49

ポイント1000pt

PARAM_STR という特殊な変数を使ってパラメータ処理をします。

親スクリプト

public a
public b

a = INPUT("a?")
b = INPUT("b?")

Exec("keisan.exe " + a + " " + b)


子スクリプト(keisan.exe)

public a
public b
public c

a = PARAM_STR[0]
b = PARAM_STR[1]

c = a + b

print " C = " + c



計算した結果を親スクリプトに戻したいのであれば、EXE化はできないと思います。
子スクリプトで関数を定義して親スクリプトからはCALLするような感じになると思います。
親スクリプト

CALL keisan.uws

public a
public b

a = INPUT("a?")
b = INPUT("b?")

c = keisan(a, b)

print " C = " + c


子スクリプト(keisan.uws)  EXE化しません

function keisan (a, b)
  result = a + b
fend



このようなところが参考になると思います。
http://canal22.org/tag/param_str/
http://uwsc.g.hatena.ne.jp/cx20/20100131/1264938584
http://big.tm.land.to/handbook/uwsc.htm

その他の回答(1件)

id:gizmo5 No.1

gizmo5回答回数484ベストアンサー獲得回数1382013/11/06 17:25:49ここでベストアンサー

ポイント1000pt

PARAM_STR という特殊な変数を使ってパラメータ処理をします。

親スクリプト

public a
public b

a = INPUT("a?")
b = INPUT("b?")

Exec("keisan.exe " + a + " " + b)


子スクリプト(keisan.exe)

public a
public b
public c

a = PARAM_STR[0]
b = PARAM_STR[1]

c = a + b

print " C = " + c



計算した結果を親スクリプトに戻したいのであれば、EXE化はできないと思います。
子スクリプトで関数を定義して親スクリプトからはCALLするような感じになると思います。
親スクリプト

CALL keisan.uws

public a
public b

a = INPUT("a?")
b = INPUT("b?")

c = keisan(a, b)

print " C = " + c


子スクリプト(keisan.uws)  EXE化しません

function keisan (a, b)
  result = a + b
fend



このようなところが参考になると思います。
http://canal22.org/tag/param_str/
http://uwsc.g.hatena.ne.jp/cx20/20100131/1264938584
http://big.tm.land.to/handbook/uwsc.htm

id:taknt No.2

きゃづみぃ回答回数13538ベストアンサー獲得回数11982013/11/06 17:47:09

http://canal22.org/control/public/

public で宣言する場合、それぞれの スクリプト外で 宣言したほうがいいですね。

スクリプト内だと そのスクリプト内とみなされる場合があるからです。

そうすれば、値は 取得できるはずです。

ただ 質問にある場合だと 子スクリプト内の宣言が不要だと思います。

親スクリプト
-------------------
public a
public b
public c

a = INPUT("a?")
b = INPUT("b?")

Exec("keisan.exe")

print " C = " + c
-------------------------------おわり

子スクリプト(keisan.exe)
--------------------------------
c = a + b
-------------------------おわり 
id:taknt

ただし exeだと それは 子スクリプトじゃなくて 実行ファイルかと思われます。

その場合は 難しいですね。

2013/11/06 17:48:07
id:iwana1999

回答を頂きまして有り難うございます。
始めにご指摘の様に親スクリプトだけにグローバル変数としたのですが、変数の定義エラーが出ましたので質問しました。

最初の方の回答がどんぴしゃりでしたので、これで終了とさせて頂きます。

2013/11/06 21:09:51

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません