人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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
-------------------------おわり

●質問者: iwana1999
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● gizmo5
●1000ポイント ベストアンサー

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


2 ● きゃづみぃ
●0ポイント

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
-------------------------おわり 

きゃづみぃさんのコメント
ただし exeだと それは 子スクリプトじゃなくて 実行ファイルかと思われます。 その場合は 難しいですね。

iwana1999さんのコメント
回答を頂きまして有り難うございます。 始めにご指摘の様に親スクリプトだけにグローバル変数としたのですが、変数の定義エラーが出ましたので質問しました。 最初の方の回答がどんぴしゃりでしたので、これで終了とさせて頂きます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ