ファイル管理
CindyScriptでファイル操作を行なういくつかの方法があります。しかし、これらのコマンドはHTMLページのアプレットでは動作しないことを注意してください。
データの読み込み¶
ディレクトリを設定する: setdirectory(<string>)¶
説明: この演算子は、これ以降のファイルのディレクトリを設定します。ファイルの読み書きをするときは、対象となるディレクトリを設定してから行ないます。設定しない場合はエラーとなります。
例: Windowsでデスクトップにディレクトリを設定する場合、たとえば setdirectory(C:¥Documents and Settings\ユーザー名\デスクトップ); のようにします。デスクトップのディレクトリは、Windowsのバージョンによって異なりますので確かめてください。 Macintoshの場合も同様ですが、 Cinderella をデスクトップに置いてあれば setdirectory("../../../../"); でデスクトップを指定できます。Cinderellaがあるのと同じフォルダです。
データの読み込み: load(<string>)¶
説明: この演算子の引数 はファイル名とします。ディレクトリ名を含んでも構いません。 ファイル名が正しければ、ファイルに含まれる全情報が文字列として返されます。この演算子は tokenize とともに、データを解析するのに有用です。データは setdirectory で指定されたディレクトリから読まれます。
例: ファイル LoadDemo.txt には次のデータが入っているものとします。
abc,gfdg;1,3,5.6,3.141;56,abc,xxx,yyy
次のコードは、データを読み込んで ";" と "," によりトークン化されたリストを作ります。
結果として次のものを出力します。
プログラムコードの読み込み: import(<string>)¶
説明: この演算子の引数 はファイル名とします。ディレクトリ名を含んでも構いません。ファイル名が正しければ、ファイルの内容は CindyScript のコードとして解析され、実行されます。こうして、あらかじめ定義された関数ライブラリを読み込むことができます。 import 演算子は CindyScript の "Initialization" スロットだけで運用するのがよいでしょう。そうでないと、動作のたびに読み込まれることになります。
ファイルへの書き出し¶
Cindy script のスクリプトをファイルへ書き出すこともできます。よく使われるのは次の手順です。
-
- setdirectory()関数を用いてディレクトリを指定する。
-
- ファイルを開く
-
- ファイルに書く
-
- ファイルを閉じる
これは次の命令で行ないます。
ファイルを開く: openfile(<string>)¶
説明: 指定した名前のファイルを開きます。戻り値はprint命令で必要なファイルハンドルです。
ファイルに書いて改行する: println(<file>,<string>)¶
説明: println(...) と同様ですが、 <file> で指定したファイルに書き出します。
ファイルに書く: print(<file>,<string>)¶
説明: print(...) と同様ですが <file> で指定したファイルに書き出します。
ファイルを閉じる: closefile(<file>)¶
説明: ファイルを閉じます。
例: 次の例は、ファイルに書き出す一連の手順を示します。:
setdirectory("../../../../");
f=openfile("myFile");
println(f,"Here are some numbers");
forall(1..15,print(f,#+" ");
println(f,"");
closefile(f);
これにより、次のような内容のファイルが作られます。:
HTMLとの連携¶
Webページを開く: openurl(<string>)¶
説明:
javascriptを呼びだす: javascript(<string>)¶
説明: 書き出されたアプレットにおいて、ブラウザの Javascript 環境での命令を呼びだします。この命令の内容は <string> に書きます。スタンドアロンのアプリケーションでは何もしません。
例: 次のコードでは、ブラウザ上にポップアップウィンドウを表示してメッセージを出します。
ネットワーク¶
シンデレラでの TCP コマンドはほんの簡単なものだけです。しかしネットワークの基本的な機能はあります。インターネット上でデータを送受信することができるはずです。
TCP ポートを開く: openconnection(<string>,<int>)¶
説明: 第1引数で指定されたサーバーへのTCP接続を行い、第2引数で指定されたポートを開きます。戻り値は、このネットワーク接続へのハンドルです。
TCP へ書きだす: print(<handle>,<string>)¶
TCPへ書きだす: println(<handle>,<string>)¶
説明: print と println 関数は、ファイルだけでなく openconnectionによって作られるネットワークへも書き出しを行ないます。
TCP ポートへの出力と消去: flush(<handle>)¶
説明: 与えられた接続への出力バッファを消去します。
TCP 接続からの読み込み: readln(<handle>)¶
説明: 与えられた接続から行を読みます。もしデータがなければ5秒後にタイムアウトします。
TCP 接続を閉じる: closeconnection(<handle>)¶
説明: 与えられたハンドルの接続を閉じます。
例:次のコードでは、Webサーバを開いて、そこからHTMLコードを読み出します。
x=openconnection("cermat.org",80);
println(x,"GET /");
y="";
while(!isundefined(y),y=readln(x);println(y));
closeconnection(x);