- 04/05 [PR]
- 02/03 2.ファイルチェックのやり方
- 02/02 1.外部ファイルのインクルード方法
- 02/01 0.jscriptで遊ぶにあたって知っておきたいこと
- 02/01 トップ記事
Title list of ユイ技術資料(jscript)
[1]
[2]
メインプログラムの前の初期設定関連の第二回です。
*ブログでは半角¥が/スラッシュとして表示されてしまうので
全角の¥を使用しています。あしからず。
ファイルチェックは必須機能ではないですが、
あるといらぬ事故を防ぐことができます。
外部インクルードファイルを使う場合は、
もちろんそのファイルが存在していることを前提にしています。
ファイルがなかったり、名前が変わっていたりするととても困ります。
ので、ファイルチェックはあると便利です。
FileSystemオブジェクトのfileExistsメソッドをを使います。
チェックしたいファイルへのパスを参照したときに、それが存在していればtrueを返します。
var counter=0;
var fso=new ActiveXObject('Scripting.FileSystemObject');
if(fso.FileExists(ファイルパスA)){
counter++;
}
if(fso.FileExists(ファイルパスB)){
counter++;
}
以上の場合では2つのファイルをチェックしています。
全部ある場合にはcounterが2になっているので、counterが2以外の場合にはエラーを返すように記述してあげて、2の場合にはメインスクリプトに入るようにしてあげればおっけーですね。
ファイルパスをいちいち記述するのがめんどくさい!
というのであれば、基本のルートパスだけ記述しておいて、あとはファイル名で書き換えしたようなパスにしてあげればいいかと思います。
えっとつまりたとえばc:¥programfiles以下のファイルにアクセスしたいときは
var rootpass="c:¥¥programfiles";
rootpass+="¥¥ファイルA";
上記のfileexistをおこなう
rootpass=rootpass.replace(/ファイルA/,"ファイルB");
fileexistをおこなう
ってやれば、ルートパスを1回指定してあげるだけで、あとはファイル名だけで追いかけることができます。
パスの名前のファイルAの部分をファイルBに置き換えてるだけです。
あ、いまさらなんですけど、jscriptは¥を2回つづけないとパスって認識してくれません。
なので、c:¥¥programfiles
って記述してます。
*ブログでは半角¥が/スラッシュとして表示されてしまうので
全角の¥を使用しています。あしからず。
ファイルチェックは必須機能ではないですが、
あるといらぬ事故を防ぐことができます。
外部インクルードファイルを使う場合は、
もちろんそのファイルが存在していることを前提にしています。
ファイルがなかったり、名前が変わっていたりするととても困ります。
ので、ファイルチェックはあると便利です。
FileSystemオブジェクトのfileExistsメソッドをを使います。
チェックしたいファイルへのパスを参照したときに、それが存在していればtrueを返します。
var counter=0;
var fso=new ActiveXObject('Scripting.FileSystemObject');
if(fso.FileExists(ファイルパスA)){
counter++;
}
if(fso.FileExists(ファイルパスB)){
counter++;
}
以上の場合では2つのファイルをチェックしています。
全部ある場合にはcounterが2になっているので、counterが2以外の場合にはエラーを返すように記述してあげて、2の場合にはメインスクリプトに入るようにしてあげればおっけーですね。
ファイルパスをいちいち記述するのがめんどくさい!
というのであれば、基本のルートパスだけ記述しておいて、あとはファイル名で書き換えしたようなパスにしてあげればいいかと思います。
えっとつまりたとえばc:¥programfiles以下のファイルにアクセスしたいときは
var rootpass="c:¥¥programfiles";
rootpass+="¥¥ファイルA";
上記のfileexistをおこなう
rootpass=rootpass.replace(/ファイルA/,"ファイルB");
fileexistをおこなう
ってやれば、ルートパスを1回指定してあげるだけで、あとはファイル名だけで追いかけることができます。
パスの名前のファイルAの部分をファイルBに置き換えてるだけです。
あ、いまさらなんですけど、jscriptは¥を2回つづけないとパスって認識してくれません。
なので、c:¥¥programfiles
って記述してます。
PR
メインスクリプト前の初期設定に関するtipsです。
規模が大きくなる場合、別ファイルで書いといてインクルードしたくなります。
これはデバッグを個別にできたり、機能別に作ることで見通しが良くなる
という利点があります。
ユイの場合は機能別で作っていますので、このインクルードが必要な規模になっています。
C言語のように
#include XXXXX
と記述してもjscriptでは機能しません。
なので、openfileとevalを使ってインクルードを実現します。
var finc = openfile('XXX',true);
eval(finc.readAll());
finc.close();
これでインクルードが完了します。
XXXにはファイルまでの絶対(相対も可)パスが入ります。
windowsで表示される「¥」はjscriptでは「¥¥」って表現するので気をつけてください。
まぁ、2回入れてくれってことです。
*当ブログでは半角¥が/として表示されてしまうので、全角の¥を使っています。
コピペするときは気をつけてください。
ただし、別ファイル内の関数処理中にエラーが出た場合は、スクリプトコンソールでは、うまくエラー行数の参照ができなくなるのでご注意。
規模が大きくなる場合、別ファイルで書いといてインクルードしたくなります。
これはデバッグを個別にできたり、機能別に作ることで見通しが良くなる
という利点があります。
ユイの場合は機能別で作っていますので、このインクルードが必要な規模になっています。
C言語のように
#include XXXXX
と記述してもjscriptでは機能しません。
なので、openfileとevalを使ってインクルードを実現します。
var finc = openfile('XXX',true);
eval(finc.readAll());
finc.close();
これでインクルードが完了します。
XXXにはファイルまでの絶対(相対も可)パスが入ります。
windowsで表示される「¥」はjscriptでは「¥¥」って表現するので気をつけてください。
まぁ、2回入れてくれってことです。
*当ブログでは半角¥が/として表示されてしまうので、全角の¥を使っています。
コピペするときは気をつけてください。
ただし、別ファイル内の関数処理中にエラーが出た場合は、スクリプトコンソールでは、うまくエラー行数の参照ができなくなるのでご注意。
jscriptとはjavascriptとは異なります。
が、内容的にも文字面もよく似ています。
なので検索をするとjavaが引っかかりやすいです。
ので、jscriptで迷ったときは以下のページを参考にすると良いと思います。
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx
ソフトウェアに触ったことのない人には何を言っているか分からないかと思いますが、
なんとなくわかってくるととても有用なページになります。
他にもif文やfor文などはC言語と同じ使い方ですので、適宜ぐぐってください。
また、基本的にlimechatを使って遊びます。
Limechat2のヘルプからスクリプトのヘルプを開いて、「スクリプトの基本」は初めての方でもソフトウェアを動かせるように、簡単に、そして手短に書いてある入門書です。
ぜひこれは体験して下さい。
サンプルスクリプトもいろいろ応用のきくよいものになっています。
そして、Limechatでjscriptを記述・動作をさせるうえで必要なものをいかに列挙します。
・Limechat(最新版)
・テキストエディタ
以上です。
テキストエディタはメモ帳以外にも秀丸やterapad等色々あります。
色分けや改行処理してくれるものもありますので、メモ帳よりはちゃんとしたものをひとつ用意したほうがいいと思います。grep検索できるとまた便利です。
ちなみに私はサクラエディタを使っています。
文字コードは必ずUTF-8を使って下さい。
これ以外ですとLimechatでコンパイル時にエラーが出ます。
また、Limechatは5秒以上かかるスクリプトは強制的にタイムアウトするように作られています。ので、無限ループに入ってもひどい事にはなりません。ありがたやー。
とにかく動かしてみる。
どこでエラーが出たのかはlogコマンドでテストポイントをたてれば簡単に出来ます。デバッグ用の画面もスクリプトコンソールで見れるので、ソフト初心者でもかなりとっつきやすいものかと思います。
jscript基本的事項
・変数宣言はvar
var A;
これで変数Aが宣言できます。
・基本はfunction
関数を作ってその関数内を走るっていうのが基本動作になります。
走るタイミングはlimechatでは、
・発言があった時
・Limechatを立ち上げた時
などのタイミングを付随させます。
関数内で宣言された変数は基本関数外へは持ち出せません。(引数宣言が必要)
関数をまたぐ変数を使いたい場合にはfunctionの外でグローバル変数として宣言する必要があります。
関数の中で他の関数を呼ぶことも出来ます。
ので、個人的には機能毎にfunctionを作って、メイン関数でそれら機能のコントロールをしてあげる。というくみたてが良いと思います。
・思ったよりいろんなことが出来る
Limechatのスクリプトヘルプに載っていること以外にもいろんなことができます。ビバ!オブジェクト指向
・ファイル操作(検索・オープン・バックグラウンドオープン・読み書き)
・エクセル操作
・プロセスの各種属性の取得などなど
・WSHも使える(一手間必要になりますが・・・)
・limechatのスクリプトヘルプの「スクリプトの基本」はよく読む
ランのさせ方やコンパイルの仕方などが書かれています。
が、内容的にも文字面もよく似ています。
なので検索をするとjavaが引っかかりやすいです。
ので、jscriptで迷ったときは以下のページを参考にすると良いと思います。
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx
ソフトウェアに触ったことのない人には何を言っているか分からないかと思いますが、
なんとなくわかってくるととても有用なページになります。
他にもif文やfor文などはC言語と同じ使い方ですので、適宜ぐぐってください。
また、基本的にlimechatを使って遊びます。
Limechat2のヘルプからスクリプトのヘルプを開いて、「スクリプトの基本」は初めての方でもソフトウェアを動かせるように、簡単に、そして手短に書いてある入門書です。
ぜひこれは体験して下さい。
サンプルスクリプトもいろいろ応用のきくよいものになっています。
そして、Limechatでjscriptを記述・動作をさせるうえで必要なものをいかに列挙します。
・Limechat(最新版)
・テキストエディタ
以上です。
テキストエディタはメモ帳以外にも秀丸やterapad等色々あります。
色分けや改行処理してくれるものもありますので、メモ帳よりはちゃんとしたものをひとつ用意したほうがいいと思います。grep検索できるとまた便利です。
ちなみに私はサクラエディタを使っています。
文字コードは必ずUTF-8を使って下さい。
これ以外ですとLimechatでコンパイル時にエラーが出ます。
また、Limechatは5秒以上かかるスクリプトは強制的にタイムアウトするように作られています。ので、無限ループに入ってもひどい事にはなりません。ありがたやー。
とにかく動かしてみる。
どこでエラーが出たのかはlogコマンドでテストポイントをたてれば簡単に出来ます。デバッグ用の画面もスクリプトコンソールで見れるので、ソフト初心者でもかなりとっつきやすいものかと思います。
jscript基本的事項
・変数宣言はvar
var A;
これで変数Aが宣言できます。
・基本はfunction
関数を作ってその関数内を走るっていうのが基本動作になります。
走るタイミングはlimechatでは、
・発言があった時
・Limechatを立ち上げた時
などのタイミングを付随させます。
関数内で宣言された変数は基本関数外へは持ち出せません。(引数宣言が必要)
関数をまたぐ変数を使いたい場合にはfunctionの外でグローバル変数として宣言する必要があります。
関数の中で他の関数を呼ぶことも出来ます。
ので、個人的には機能毎にfunctionを作って、メイン関数でそれら機能のコントロールをしてあげる。というくみたてが良いと思います。
・思ったよりいろんなことが出来る
Limechatのスクリプトヘルプに載っていること以外にもいろんなことができます。ビバ!オブジェクト指向
・ファイル操作(検索・オープン・バックグラウンドオープン・読み書き)
・エクセル操作
・プロセスの各種属性の取得などなど
・WSHも使える(一手間必要になりますが・・・)
・limechatのスクリプトヘルプの「スクリプトの基本」はよく読む
ランのさせ方やコンパイルの仕方などが書かれています。
特設ページ【jsciptで遊ぼう!】
このページは気が向いたときに「RO_GV_NAVIGATION_PIXIE_YUI」についての技術資料をまとめていくポータルページです。
12/21/1更新がだるくなったのでもうソース公開しちゃいました(テヘ
リンク
方針としてはユイを題材にしてjscriptのtipsをメインに記述します。
目次は下の方です。
ブロック図

仕様
◆基本動作
①定時アナウンス
19時台(集合開始/PTLからの集合状況報告を促す/セーブ確認)
20時台(開始/30分経過)
21時台(1時間経過/30分前/5分前)
などなど
②モニタ機能(ON/OFF切り替え可能)
いろんな制約(※1)を満たせるならば使える機能
予め設定した注目ギルドの陥落ログをIRCに報告
自ギルドが城主になったのを確認したらリンクフラッグをIRCに表示する。
※1 2PC目にて定期的に(理想は1分サイクル)savechatでログ取得が「手動で」できること
2PC目とメインPCがホームネットワークでつながっていること
◆コマンド動作
①リストアップ「注目ギルド」/「不落砦」
モニタ機能がONの時、注目ギルドが現在取得している砦と陥落時間をすべてIRCに報告する
また、SE砦において現在まで不落の砦をピックアップする。
②モニタON/OFF
モニタ機能をONとOFFに切り替える
③ヘルプ
ユイちゃんの使い方を表示する
公開および配布に関する考え方
ソースの公開は可能だが配布はしない予定
理由は以下のとおり
①ユーザー設定が複雑でありPCとプログラムの知識をもってないとおそらくできない。
また、初心者向けにそれをサポートする気もない。
②2PC目が必要な上にネットワークの構築と手動でログ取得をしなくてはならないので、おおきくそのひとのPC数環境等に依存するため。またログの自動取得については規約的に自動化はしない、または技術的に私ができません。とういういみで使い勝手が非常に悪いため。
③エクセル周りはエラー警告を念密にやっていますが、ユーザー設定が不正の場合のエラー発生に対する警告が出来上がっていないし作る気もない。自分のPCおよびファイル構成にて問題なく動くという信頼のもとエラー処理を書かずにプログラムを作っている。つまり自分のPCにカスタマイズされすぎている。
④コマンドが自分のやりやすい単語になっているため
⑤自鯖の他の同盟に使われると困るなぁ
【もくじ】
*サンプルプログラムについての注意
・¥は全角を使用しています(ブログで文字化けするため)
・<>も全角を使用しています(文字化けするため)
・他にも文字化けが混ざっている恐れがあります
・functionで囲わないとコピペしても使えません。また上記全角が混じっているのでコピペしても使えません。
0.jscriptで遊ぶにあたって知っておきたいこと
1.外部ファイルのインクルード方法
2.ファイルチェックのやり方
3.ネットワークドライブのマウント
4.処理の順番及びグローバル変数と引数
5.エクセル操作(開く・アクティブにする)
6.エクセル操作(多重起動制御その1)
4/3ここまで
このページは気が向いたときに「RO_GV_NAVIGATION_PIXIE_YUI」についての技術資料をまとめていくポータルページです。
12/21/1更新がだるくなったのでもうソース公開しちゃいました(テヘ
リンク
方針としてはユイを題材にしてjscriptのtipsをメインに記述します。
目次は下の方です。
ブロック図
仕様
◆基本動作
①定時アナウンス
19時台(集合開始/PTLからの集合状況報告を促す/セーブ確認)
20時台(開始/30分経過)
21時台(1時間経過/30分前/5分前)
などなど
②モニタ機能(ON/OFF切り替え可能)
いろんな制約(※1)を満たせるならば使える機能
予め設定した注目ギルドの陥落ログをIRCに報告
自ギルドが城主になったのを確認したらリンクフラッグをIRCに表示する。
※1 2PC目にて定期的に(理想は1分サイクル)savechatでログ取得が「手動で」できること
2PC目とメインPCがホームネットワークでつながっていること
◆コマンド動作
①リストアップ「注目ギルド」/「不落砦」
モニタ機能がONの時、注目ギルドが現在取得している砦と陥落時間をすべてIRCに報告する
また、SE砦において現在まで不落の砦をピックアップする。
②モニタON/OFF
モニタ機能をONとOFFに切り替える
③ヘルプ
ユイちゃんの使い方を表示する
公開および配布に関する考え方
ソースの公開は可能だが配布はしない予定
理由は以下のとおり
①ユーザー設定が複雑でありPCとプログラムの知識をもってないとおそらくできない。
また、初心者向けにそれをサポートする気もない。
②2PC目が必要な上にネットワークの構築と手動でログ取得をしなくてはならないので、おおきくそのひとのPC数環境等に依存するため。またログの自動取得については規約的に自動化はしない、または技術的に私ができません。とういういみで使い勝手が非常に悪いため。
③エクセル周りはエラー警告を念密にやっていますが、ユーザー設定が不正の場合のエラー発生に対する警告が出来上がっていないし作る気もない。自分のPCおよびファイル構成にて問題なく動くという信頼のもとエラー処理を書かずにプログラムを作っている。つまり自分のPCにカスタマイズされすぎている。
④コマンドが自分のやりやすい単語になっているため
⑤自鯖の他の同盟に使われると困るなぁ
【もくじ】
*サンプルプログラムについての注意
・¥は全角を使用しています(ブログで文字化けするため)
・<>も全角を使用しています(文字化けするため)
・他にも文字化けが混ざっている恐れがあります
・functionで囲わないとコピペしても使えません。また上記全角が混じっているのでコピペしても使えません。
0.jscriptで遊ぶにあたって知っておきたいこと
1.外部ファイルのインクルード方法
2.ファイルチェックのやり方
3.ネットワークドライブのマウント
4.処理の順番及びグローバル変数と引数
5.エクセル操作(開く・アクティブにする)
6.エクセル操作(多重起動制御その1)
4/3ここまで
プロフィール
HN:
komyu/シュクレール/修造
性別:
非公開
自己紹介:
こうぶつはけものみみとのーびす(♀)とエリーン
主にROとTERAとラノベと雑多なkomyuの日記帳です。
主にROとTERAとラノベと雑多なkomyuの日記帳です。
TERAキャラ紹介
シュクレール(バサ)
syuzo(エレ)
サケマス(アチャ)
その他サブ
ウリエルキゥィス(スレLv54)
Vermillion(サラLv56)
パズドラ
157,318,362
フレンド募集中
枠なきゃ増やす
最終プレイ3日以上になったら消す
カレンダー
03 | 2025/04 | 05 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
最新記事
(12/02)
(07/07)
(07/06)
(06/14)
(05/31)
ブログ内検索
最新コメント