先日ツイッターの方で貼ったvbsで作った抽選もどきです
使い方
下のプログラムをメモ帳とかにコピーする
拡張子を.vbsに書き換える
このスクリプトと同じ階層にinputText.txtとoutputText.txtを用意する
(相対パスを絶対パスに書き換えてくださればどこの階層に置こうと自由です)
作ったvbsを実行する
以上
inputText.txtの記載方法
キャラ名,palno,設定(必要数を:で区切る 設定がない場合はなしと記載してください)
(例)
カンフーマン,12,AI1:AI2:AI3:AI4:AI5:AI6
絶望ちゃん,12,なし
FSくん,6,なし
outputText.txtの出力される情報
キャラ:カンフーマン
カラー:12p
設定:AI2
以下はプログラムです
Option Explicit Randomize Dim fso Set fso = WScript.CreateObject("Scripting.FileSystemObject") Dim inputFile,outputFile Set inputFile = fso.OpenTextFile("inputText.txt", 1, False, 0)'読み込みテキスト(相対パス) Set outputFile = fso.OpenTextFile("outputText.txt", 2, True)'書き出しテキスト(相対パス) Dim arr(),count count=0'配列の要素数取得用 ReDim arr(count) Dim allconfig,aryStrings Do Until inputFile.AtEndOfStream Dim lineStr lineStr = inputFile.ReadLine'読み込みテキスト1行取得 count=count+1 ReDim Preserve arr(count) arr(count)=lineStr'配列に読み込みテキストを1行格納 Loop Dim intValue, intUpper intUpper = count'配列の要素数 intValue = Int((intUpper) * Rnd + 1)'配列の要素数を上限に乱数を生成 aryStrings = Split(arr(intValue), ",")',(カンマ)で区切られている部分を配列に各々格納 Dim intpalno intUpper = aryStrings(1)'palno部分に記載されている数字 intpalno = Int((intUpper) * Rnd + 1)'palno部分に記載されている数字を上限に乱数生成 allconfig=Split(aryStrings(2), ":")'設定の部分で:(コロン)で区切られている部分を配列に各々格納 Dim intconfig intUpper = (UBound(allconfig))+1'設定の配列の要素数+1 intconfig = Int((intUpper) * Rnd)'設定の配列の要素数+1を上限に乱数生成 outputFile.WriteLine "キャラ:"&aryStrings(0) outputFile.WriteLine "カラー:"&intpalno&"p" if(aryStrings(2)<>"なし")then outputFile.WriteLine "設定:"&allconfig(intconfig) end if