2011年3月4日金曜日

nScript講座 第15回




期末試験終わりましたー!!
てなわけで、やっとまともに更新できます。
が、
まともにネタをほとんど用意してなかったので、今回からはターミナルに
必要な関数を紹介としましょう。(というか前からそういう予定ですね。)
というわけで今回はかなり簡略化した表記で関数をばんばん紹介していきます。
使えるか使えないかは、あなたしだいです。
なんて怖いこというつもりはないです。用はちょっと簡単に書きますよということ。

ではいきましょうか。


まずはファイル操作関数からです。


・FileOpen(type<string>,file<string>)

これはnScriptでファイルを扱うときに必要な関数です。
たとえば、ファイルの中身を表示して簡易なテキストビューにしたいとか、
ちょっとファイルに内容を加えたいとか、新しいファイルを作りたいとか、
そういうときに使います。(多分)
返し値としては、ファイルポインタというものを返します。
ファイルポインタというのは、そのファイルをメモリに展開したときに
メモリのどこの番地にあるのかということを示すための値です。(多分)
が、そんなこと知らなくてもポインタの値を自分でいじることはないので大丈夫です。
とりあえず、返し値にはそのファイルのある場所が返ると覚えておいてください。
また第一引数にはタイプというものが入り、第二引数には開く対象のファイルを指定します。
タイプについては下で解説します。

・FileRead(filepointer<pointer>,buf<string>,len<integer>)

そしてこいつが上記のファイルポインタを使う関数の一種です。
第一引数には、FileOpenの返し値であるファイルポインタをそのままいれます。
第二引数のところには、ファイルの中身を開く変数をいれます。
第三引数は読み込む最大文字数です。(省略可)
ところで、第二引数のところには変数をいれるといいました。
この関数によってfilepointerに対応するファイルの中身が文字列として変数bufに
代入されます。引数なのに、値が返るんです。
これは、関数が返し値を返すときに「参照渡し」という方法を使って値を返すから
実現できること、、だと思います。
紹介していて気がつく。自分が大切なとこをすっぽかして使っているということに。
んー。ここの説明も必要ですね。まだ理解してないけど。
とりあえず今は、第二引数の変数に値を返してくれるって覚えておいてください。


上記二つの関数を組み合わせて
file = gets(20);


f = FileOpen("read",file);
FileRead(f,buf);
FileClose();


puts(buf);
と記述すればファイルの中身を表示させられます。
先ほどファイルを開くときのタイプについての記述を省略しました。
今はタイプのところには"read"が指定されています。
ここを返ることによって、ファイルのいじれ方が変わります。
具体的に言えば、使える関数が異なってきます。
FileRead関数を使うのには"read"タイプで開く必要があるので、
まずそのタイプで開きます。
そして返し値のファイルポインタを引数に指定し、bufに代入させます。
そして、それを表示しています。

ここまではいいでしょうか?
今上に記述したものをターミナルに組み込む事でcatコマンドが作成できます。
catコマンドとは、ファイルをテキストファイルとしてダンプしてその内容を
そのまま表示するものです。
本格的にターミナルを用いるようになると、ちょくちょく使うのですが.......
今のところあまり使わないかもしれませんね。

FileOpen関数に関しては、あと"new"タイプと"write"タイプが存在するので、
それについて..........

それについてはまた次回にしますか......w
結構更新してなかったので若干更新を優先させなければなかったのが一つです。

もう一つは何かって?

もちろんPineがまだこの二つのタイプの使い方を知らないからですよ!!←←←
では次回までに説明できるくらいに学んでおきますね。
まだまだPineも初心者ですから。

ではっ。

3 コメント:

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

おお、あたらしい関数が!
これらは教えてもらっていた関数を参考にしてもよくわからなかったんですよね..w
これらを使っていつかnscでファイルを編集してnscで実行とかもできるようになるんでしょうか、それはそれで楽そうですw
まあ行きすぎてviみたいなのになられたらわかりませんけど...w

Pine さんのコメント...

ですねえw

僕もviはあんま好きでないですね。
だって絶対使いづらいですしw

次回は全部のタイプについて記事を書きます。

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

全部ってことは...そのnewとwriteでしょうか
名前から察すると新規と編集...?
これでスクリプト作るのも少しだけ楽になるのかな、お願いしますw

コメントを投稿

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