[JavaScript][VBScript]VBScript + Javascriptで簡単プロジェクト内ツール。その1
プロジェクトでIE6上で動く VBScript + JavaScript + HTML のツールを作ってみた。
なんで今更?IE6?
会社の中では未だに頑固にIE6が標準だーって会社は多いのさ。
本当は HTML5 + JavaScript で作りたかったけど仕方ない。
会社のみんなにChromeやFireFoxを強制的にインストールさせるのは面倒だからね。
要件はある固定長インターフェースファイルを使ったテスト用に、
- テキストファイルを別のフォーマットに変えてくれ。(ファイルI/O)
- 要件は流動的に変わる。インクリメンタルにイテレーティブに。
- 実装工数はインフラの空き時間を使って。
この用件ならhttpアクセスで画面はHTMLインターフェースでやるのが適当かなと思った。
ついでに皆標準的に入れてるブラウザはIE6。
ファイル I/O 部位を VBScript に任し、
他の挙動を JavaScript で制御するのが適当か?
以下その場合の注意点
VBScript のファイルI/Oを有効化するにはIE6の設定変更が必要
- メニューバーの【ツール(T)】より【インターネットオプション】を起動します。
- 【セキュリティ】タブを選択し、【レベルのカスタマイズ(C)…】ボタンをクリックします。
- 【スクリプトを実行しても安全だとマークされている ActiveXコントロールのスクリプト実行】を有効にします。
これを画面の最下部に常に表記。
で、まずはFile I/O部のVBScriptコード
注意点は読み込んだ内容をJavaScriptに渡す場合、
配列渡しはうまくいかなかったので、
適当な区切り文字をはさんで渡し、JavaScript側でSpritしたことと、
動的な配列が定義出来なかったのでReDimとPreserveを多様したこと
書き込み
Function FileOutput(FULLPATH,TXT)
Dim objFSO, objFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile(FULLPATH, 8, True)
If Err.Number = 0 Then
objFile.Write(TXT & vbcrlf)
objFile.Close
Else
WScript.Echo "file open error: " & Err.Description
End If
Else
WScript.Echo "error: " & Err.Description
End If
Set objFile = Nothing
Set objFSO = Nothing
End function
読み込み
''指定されたパスのファイルを読み取りJavaScriptに渡す。
Function FileInput(FULLPATH)
Dim objFSO, objFile
Dim cnt,max
Dim ret
Dim Arr()
ReDim Arr(10)
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile(FULLPATH, 1, false)
If Err.Number = 0 Then
cnt = 0
max = 10
While (objFile.AtEndOfStream=false)
Arr(cnt) = objFile.ReadLine
cnt = cnt + 1
''cntが配列の配列数に達した時、定義し直して10配列数を増やす。
if cnt = max then
max = max + 10
''Preserveを入れると配列の中身を壊さずに再定義出来る。
ReDim Preserve Arr(max)
End if
Wend
objFile.Close
Else
WScript.Echo "file open error: " & Err.Description
End If
Else
WScript.Echo "error: " & Err.Description
End If
''区切り文字を使って配列を連結する。
For Each buf in Arr
ret = ret & buf & "区切"
Next
Set objFile = Nothing
Set objFSO = Nothing
FileInput = ret
End function
Read other posts
日記
(84)
読書メーター
(36)
worklog
(34)
google
(13)
大晦日
(13)
android
(11)
blogger
(9)
dynamicsax2009
(8)
mac
(8)
signature
(6)
baby
(5)
flash
(5)
impro
(5)
写真
(5)
技術
(5)
javascript
(4)
一眼レフ
(4)
4.2
(3)
biztalk2009
(3)
eclipse
(3)
jb
(3)
jb_mr1
(3)
lmde2
(3)
oracle
(3)
rsgt
(3)
web
(3)
windows
(3)
4.1
(2)
4.3
(2)
ant
(2)
coaching
(2)
docker
(2)
essay
(2)
factoryreset
(2)
game
(2)
ics
(2)
java
(2)
jb_mr2
(2)
linux
(2)
orsc
(2)
vb.net
(2)
vbscript
(2)
wtcc
(2)
スーパー耐久
(2)
勉強会
(2)
応用演劇
(2)
読書ノート
(2)
資格
(2)
随想
(2)
4.4
a77
advent-calendar
amazon
ansible
azure
bash
ble
bluetooth
book
c++
camera
coach
cp+
creative-process
docker-registry
event
facilitation
feedback
firefox
flickr
forum-theatre
galaxy
gingerbread
git
gpu
hello-world
india
kitkat
laos
laravel
linux-mint
microphone
misstake
opengrok
pdm
phpunit
postgresql
presentation
rsgt2016
rust
scrum
scrum-fest-osaka
scrum-gathering
security
serverside
smartphone
speaker
sprint-review
sqlite
ssh
tomcat
tool
trip
ts
twitter
ubuntu
ubuntu16
vb6
visa
weblogic
wfh
wikka
windows-10
windows-7
windows2008server
x++
デザイン思考
パターンランゲージ
ラオス
ラオ語
修理
演劇教育