コンテンツにスキップ

ファイル管理

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

次のコードは、データを読み込んで ";" と "," によりトークン化されたリストを作ります。

x=load("LoadTest.txt");
y=tokenize(x,(";",","));
apply(y,println(#));

結果として次のものを出力します。

[abc,gfdg]
[1,3,5.6,3.141]
[56,abc,xxx,yyy]

プログラムコードの読み込み: import(<string>)

説明: この演算子の引数 はファイル名とします。ディレクトリ名を含んでも構いません。ファイル名が正しければ、ファイルの内容は CindyScript のコードとして解析され、実行されます。こうして、あらかじめ定義された関数ライブラリを読み込むことができます。 import 演算子は CindyScript の "Initialization" スロットだけで運用するのがよいでしょう。そうでないと、動作のたびに読み込まれることになります。



ファイルへの書き出し

Cindy script のスクリプトをファイルへ書き出すこともできます。よく使われるのは次の手順です。

    1. setdirectory()関数を用いてディレクトリを指定する。
    1. ファイルを開く
    1. ファイルに書く
    1. ファイルを閉じる

これは次の命令で行ないます。


ファイルを開く: 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);

これにより、次のような内容のファイルが作られます。:

Here are some numbers
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15


HTMLとの連携

Webページを開く: openurl(<string>)

説明: のWebページをブラウザで開きます。

javascriptを呼びだす: javascript(<string>)

説明: 書き出されたアプレットにおいて、ブラウザの Javascript 環境での命令を呼びだします。この命令の内容は <string> に書きます。スタンドアロンのアプリケーションでは何もしません。

例: 次のコードでは、ブラウザ上にポップアップウィンドウを表示してメッセージを出します。

  javascript("alert('Hi from Cinderella!!')");

ネットワーク

シンデレラでの TCP コマンドはほんの簡単なものだけです。しかしネットワークの基本的な機能はあります。インターネット上でデータを送受信することができるはずです。

TCP ポートを開く: openconnection(<string>,<int>)

説明: 第1引数で指定されたサーバーへのTCP接続を行い、第2引数で指定されたポートを開きます。戻り値は、このネットワーク接続へのハンドルです。

TCP へ書きだす: print(<handle>,<string>)

TCPへ書きだす: println(<handle>,<string>)

説明: printprintln 関数は、ファイルだけでなく 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);