write(String str) についてアトグラ - 2009/01/13(火) 01:35 No.1622
|
いつもLIMECHATをありがたく活用させて頂いております。
最近スクリプトを弄り始めたのですが、write(String str)が機能しません。 スクリプトで「既存のトピックに追記を行う」という事をやりたいのですが、 そのために外部テキストに既存のトピの保存を行う必要がありそうな気がしたので…。
とりあえず外部ファイルへの出力部分だけを見て頂こうと思いお伺いしました。 如何せん始めたばかりで記述が間違っている可能性もあるので…。
function event::onTopic(prefix, channel, topic) { var file = fileOpen('topic.txt'); file.write(topic); file.close(); }
scriptフォルダ下のfilesフォルダにtopic.txtはあります。 そして、topic.txtを適当な内容で保存し、readAll()しても読み込めます。 しかしwrite(String str);で書き込みを行ってくれないのです。 エラーも出ないのでどうしたらいいものか…。 改善案などありましたらよろしくお願いします。
|
Psychs - 2009/01/13(火) 17:30 No.1623
|
ヘルプに
File openFile(String filename, [boolean readOnly=true, int codePage=CP_UTF8])
とあるように、openFile の第2引数を省略すると read only になるので、
var file = openFile('topic.txt', false);
とすればいいでしょう。
|
アトグラ - 2009/01/14(水) 02:10 No.1625
|
成る程…読み取り専用になってしまうわけですね。 お陰様で無事ファイルに書きこむ事が出来ました。ありがとうございました。
質問に答えてもらった後で申し訳ないと思いつつも、 もう一つだけ質問をお願いしてもよろしいでしょうか…。 function event::onTopic(prefix,channel,topic){} 以外の関数で、現在のトピックを取得する方法ってあるのでしょうか? 入室した時のシステムメッセージからでもトピックを取得等出来れば、 それに似通った事が出来そうな気もしますが…。度々申し訳ないです。
|
Psychs - 2009/01/14(水) 02:24 No.1626
|
現在のトピックを取得する簡単な方法は、いまのところないです。
チャンネルに入った直後か、topic(channel); を実行すると、 332 リプライが返ってくるので、それを onNumericReply で拾ってください。
詳しくは、RFC2812 を参照しつつ、プロトコルログを確認してみてください。
|
アトグラ - 2009/01/15(木) 21:38 No.1629
|
onNumericReplyで取得出来ました!ありがとうございます。 お陰様でバグだらけではあるもののなんとかスクリプトが完成しました。 これからこつこつ手直ししてまともに利用できるようなものにしたいです。 初心者にこうも丁寧に教えて頂き本当に感謝です…。
|
|