2011年1月15日土曜日

nScript講座 第13回



ひさしぶりに記事を書いた気分になってしまう時点でだめですね。
ちょっと新しいことを学んでいたら遅れました。
無事習得できたので、今回から二回にわたっては新しい関数では
なく、新しい作り方について学びましょう。

今回、サンプル書きました。ではご覧ください。

////term.ns////////////////////////////////
#import (*.ns);

var cmd;

Function main() {
puts(" Hello Terminal!!\n\n");
while(1) {
puts(" >");
cmd=gets(10);
switch(cmd) {
case "pwd":
pwd.main();
break;

case "exit":
break 2;

default:
puts("Can't find command\n");
break;
}
}
}
////pwd.ns//////////////////////////////////
Function main() {
puts("%GetCurrentDirectory()%\n");
}
////////////////////////////////////////////

なぜかPCで実行したらエラーが、、
なんか気がついたら言ってください。
とりあえず、CE上では正常に動いたので。

はい。
今回はスクリプト二つを、指定した名前通りに同じディレクトリに
作って、配置してください。


今回、何故二つスクリプトがあると思いますか?
それは、、スクリプトから別のスクリプトを読み込んで、実行する
ためです!!
こうすることで、やたらと長いスクリプトを作らなくても関数ごとに、
もしくは処理ごとにスクリプトを分散することができます。

今回はそれをターミナルで再現しています。
処理を簡単に説明すると、前と同じような方法で処理を記述した
上で、その中の「関数を別に用意する必要のある処理」をスクリプト
にまとめて読み込ませ、そしてそのスクリプトの中にあるmain()を
呼び出すようにだけ記述しておくということです。

では今度は具体的に呼び出す方法ですね。
スクリプトは、同じディレクトリにおいてあった場合は
#import (スクリプト名);
と、記述することでとりあえず読み込むことはできます。
気をつける点は、スクリプト名は""でくくらなくても、
文字列になるということです。
サンプルを見ればわかりますよね。
また、違うディレクトリにスクリプトがおいてある場合は、、
次回やりましょう。

そして、今度は実行する方法です。
スクリプト名.関数名();
と、することで実行できます。引数と返り値も普通に使えます。
ここも注意が必要です!
pwd.ns.main();
のようにしてはいけません。.nsはつけないで、拡張子以前のみ
を記述して、
pwd.main();
と記述してください。

この二つを抑えて、もう一度スクリプトを見直してみてください。
先ほど話したように、pwdコマンドのところを
pwd.main()にすることによって簡単にしています。
cdコマンドのように、何行も記述しなきゃいけないようなときは
結構便利です。
それにコマンドの追加を簡単に行えるというメリットもあります。

結構重要ですよ。

次回やることを学ぶためにも。

次回学ぶことによって、スクリプトの追加がもっと簡単になります。
がんばって、とりあえず覚えてください。

ほかに今回説明すべき点はありませんね。
わからないことがあったら遠慮なくコメントしてくださいね。
では。

2 コメント:

よつ さんのコメント...

ありがとうございます!
試して見ましたが、しっかりうごきました
疑問点は...varを置く意味が少し...
あとコマンド的にはlsコマンドあたりの作り方がまったくわかりません..
あれがあれば成功の確認もnスク内で確認できそうなものですが...

mikan さんのコメント...

毎回どうもです。

varは僕が作ったのをコピーしたときに残った副産物ですw
気になさらないでください...

lsですか、、
僕もよくわからないんですよね。サンプル見ても。
いま奮闘してます。
とりあえず完成品はありますけど、いりますか?

説明の要望が出てきそうなので、サイトには貼り付けない方針で、スクリプトをメールさせていただければありがたいのですが。

アドレスのほう教えていただけませんか?
よろしかったらpinemukuro@zoho.comに送信お願いします。

コメントを投稿

Related Posts Plugin for WordPress, Blogger...

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Walgreens Printable Coupons