Introduction

ブログ内検索

  • このサイトの記事を検索 by Google

おすすめの一冊!

無料ブログはココログ

« uncensored favotter | トップページ | 瑠璃色の地球 »

2009-09-08

SleipnirScript with WSH

前々回の記事で「SleipnirScript でファイルを読み込む際に EOF がわからない」
と悩みを書いたのですが、さっそくコメントで情報をいただきました!
958 さん、ありがとうございます~^^

つまりは、SleipnirScript の中で WSH のオートメーションオブジェクトを
呼び出して使えば OK、というお話です。

さっそく以前買った WSH の本を発掘してきて調査。
# だいぶ前に JScript を勉強したことがあるのですw


で、今回は、FileSystemObject オブジェクトと TextStream オブジェクトを 使うということになります。SleipnirScript の CreateObject() API で オートメーションオブジェクトを取得できるので、とってもカンタン♪
var fso = sleipnir.CreateObject('Scripting.FileSystemObject'); if (! fso) return; if (! fso.FileExists(fileName)) return; var fileObj = fso.OpenTextFile(fileName); if (! fileObj) return; while (! fileObj.AtEndOfStream) { var line = fileObj.ReadLine(); if (line.match(/^\s*$/)) continue; var fields = line.split(/\s+/); var name = fields[0]; table[name] = true; } fileObj.Close();
ちなみに、いただいたコメントでは AtEndOfLine がうまく動かない (空行で終了してしまう)とのことでしたが、AtEndOfLine の代わりに AtEndOfStream を使えば大丈夫でした。 これまで、応急処置として「連続した空行が1000行以内なら読み飛ばせる」 みたいなちょっと恥ずかしいコードになっていたので、まともなコードに できてうれしいです♪

« uncensored favotter | トップページ | 瑠璃色の地球 »