小規模判定
- depth:
- 0
前の投稿
-
次の投稿
|
親投稿
-
子投稿なし
|
投稿日時 2010-3-22 9:45
ゲスト
投稿数: 0
'**************************************************************************
'** VBS名 : 判定.vbs
'** 作成日 : YYYY.MM.DD
'** 作成者 : TESTER
'** 処理概要 : 処理
'** 変更日 変更内容 変更者
'** yyyymmdd ここに変更内容記述する。 xxxxxx
'**************************************************************************
'********変数強制宣言********
Option Explicit
'********フラグ変数定義********
Dim OK
'********オブジェクト変数定義********
Dim FSO , LOG , INP_OBJ , INP_DM , F , DATA1 , DATA2 , TODAY_1_BEFORE
'********配列宣言************
Dim INP_FILENAME
INP_FILENAME = Array("A.TXT" , "B.TXT" , "C.TXT" , "D.TXT" , "E.TXT" , _
"F.TXT" , "G.TXT" , "H.TXT" , "I.TXT")
Dim INP_FILE_DATE_ONLY_BEFORE(8)
Dim INP_FILE_TIME_ONLY_BEFORE(8)
Dim INP_FILE_DATE_ONLY(8)
Dim INP_FILE_TIME_ONLY(8)
Dim INP_FILE_SIZE_ONLY(8)
Dim INP_FILENAME_VALUE(1)
Dim FILE_VALUE(1)
'********カウント変数宣言************
Dim i , t , Minimum_Value , Half_Value , Maximum_Value , CNT_UP , CNT_DOWN
'********フォルダ変数宣言************
Dim MAIN_DIR , INP_DIR , LOG_DIR
'********ファイル変数宣言************
Dim LOG_FILE1 , LOG_FILENAME1
Dim LOG_FILE2 , LOG_FILENAME2
Dim LOG_FILE3 , LOG_FILENAME3
Dim LOG_FILE4 , LOG_FILENAME4
'********時間変数宣言********
Dim YYYY , MM1 , DD , HANTEI_TIME
'********レコード長変数宣言************
Dim RECORD_LENGTH1 , RECORD_LENGTH2
'********メッセージ変数宣言********
Dim OK_MESSAGE , NG_MESSAGE
'********その他変数宣言************
Dim LINE ,LINE1 , LINE2 , LINE3 , LINE3_1_BEFORE , HINAGATA1_BEFORE , HINAGATA2_BEFORE , HINAGATA1 , HINAGATA2 , I_DATA1 , I_DATA2
'********初期設定********
MAIN_DIR = "D:\IFFILE"
INP_DIR = MAIN_DIR & "\test"
LOG_DIR = MAIN_DIR & "\LOG"
LOG_FILE1 = "CHECK_LOG.txt"
LOG_FILE2 = "TEST1.txt"
LOG_FILE3 = "TEST2.txt"
LOG_FILE4 = "TODAY_1_BEFORE.txt"
LOG_FILENAME1 = LOG_DIR & "\" & LOG_FILE1
LOG_FILENAME2 = LOG_DIR & "\" & LOG_FILE2
LOG_FILENAME3 = LOG_DIR & "\" & LOG_FILE3
LOG_FILENAME4 = LOG_DIR & "\" & LOG_FILE4
i = 0
t = 0
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set LOG = FSO.OpenTextFile(LOG_FILENAME1, 2, True)
Set DATA1 = FSO.OpenTextFile(LOG_FILENAME2,1)
Set DATA2 = FSO.OpenTextFile(LOG_FILENAME3,1)
Set TODAY_1_BEFORE = FSO.OpenTextFile(LOG_FILENAME4,1)
OK_MESSAGE = "正常終了"
NG_MESSAGE = "異常終了"
Minimum_Value = "0"
Maximum_Value = "8"
Half_Value = Maximum_Value / 2
YYYY = Year(DATE)
MM1 = Right("0" & MONTH(DATE), 2)
DD = DAY(DATE)
RECORD_LENGTH1 = 340
RECORD_LENGTH2 = 500
HANTEI_TIME = "220000"
HINAGATA1_BEFORE = "2010/03/22"
HINAGATA1 = "20100322"
HINAGATA2_BEFORE = "2010/03/22"
HINAGATA2 = "20100322"
I_DATA1="データ1"
I_DATA2="データ2"
'********処理開始時間********
CALL LOG_LINE(LINE,"メイン","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********ファイル存在確認処理********
CALL LOG_LINE(LINE,"ファイル存在確認","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
For i = Minimum_Value to Maximum_Value
IF FSO.FileExists(INP_DIR & "\" & INP_FILENAME(i)) THEN
LOG.WriteLine(INP_FILENAME(i) & "は存在しています。")
ELSE
LOG.WriteLine(INP_FILENAME(i) & "は存在していません。")
OK = 1
END IF
NEXT
IF OK = 0 THEN
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"ファイル存在確認","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
ELSE
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"ファイル存在確認","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
'********ファイル更新日時確認処理********
CALL LOG_LINE(LINE,"ファイル更新日時確認","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
For i = Minimum_Value to Maximum_Value
Set INP_OBJ = FSO.Getfile(INP_DIR & "\" & INP_FILENAME(i))
INP_FILE_DATE_ONLY_BEFORE(i) = _
Year(INP_OBJ.DateLastModified) & "/" & _
Right("0" & Month(INP_OBJ.DateLastModified), 2) & "/" & _
Right("0" & Day(INP_OBJ.DateLastModified), 2)
INP_FILE_TIME_ONLY_BEFORE(i) = _
Right("0" & Hour(INP_OBJ.DateLastModified), 2) & ":" & _
Right("0" & Minute(INP_OBJ.DateLastModified), 2) & ":" & _
Right("0" & Second(INP_OBJ.DateLastModified), 2)
INP_DM = INP_FILE_DATE_ONLY_BEFORE(i) & " " & INP_FILE_TIME_ONLY_BEFORE(i)
LOG.WriteLine(INP_FILENAME(i) & "の更新日時は " & INP_DM)
INP_FILE_DATE_ONLY(i) = Replace(INP_FILE_DATE_ONLY_BEFORE(i),"/","")
INP_FILE_TIME_ONLY(i) = Replace(INP_FILE_TIME_ONLY_BEFORE(i),":","")
INP_FILE_SIZE_ONLY(i) = INP_OBJ.size
NEXT
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"ファイル更新日時確認","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********INP_FILENAME(0) INP_FILENAME(3) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'本日出力件数ファイルオープン及び、出力処理
LINE1 = DATA1.ReadLine
LINE2 = DATA2.ReadLine
DATA1.CLOSE
DATA2.CLOSE
LOG.WriteLine("本日の" & I_DATA1 & "は" & LINE1 & "件です。")
LOG.WriteLine("本日の" & I_DATA2 & "は" & LINE2 & "件です。")
'INP_FILENAME(0) INP_FILENAME(3) レングスサイズ判定処理
INP_FILENAME_VALUE(0) = INP_FILE_SIZE_ONLY(0) / RECORD_LENGTH1
INP_FILENAME_VALUE(1) = INP_FILE_SIZE_ONLY(3) / RECORD_LENGTH2
FILE_VALUE(0) = Fix(INP_FILENAME_VALUE(0))
IF FILE_VALUE(0) = INP_FILENAME_VALUE(0) THEN
LOG.WriteLine(INP_FILENAME(0) & "のレングスは正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(0) & "のレングスは異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
FILE_VALUE(1) = Fix(INP_FILENAME_VALUE(1))
IF FILE_VALUE(1) = INP_FILENAME_VALUE(1) THEN
LOG.WriteLine(INP_FILENAME(3) & "のレングスは正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(3) & "のレングスは異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
'INP_FILENAME(0) 判定処理
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(0) AND HANTEI_TIME>INP_FILE_TIME_ONLY(0) THEN
LOG.WriteLine(INP_FILENAME(0) & "の更新日時は正常です。")
IF FILE_VALUE(0)<=LINE1 THEN
CNT_UP = LINE1
CNT_DOWN = FILE_VALUE(0)
ELSE
CNT_UP = FILE_VALUE(0)
CNT_DOWN = LINE1
END IF
IF CNT_UP-CNT_DOWN > -100 AND CNT_UP-CNT_DOWN < 100 THEN
LOG.WriteLine(INP_FILENAME(0) & "の値は正常閾値範囲内です。")
ELSE
LOG.WriteLine(INP_FILENAME(0) & "の値は正常閾値範囲外です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
LOG.WriteLine(INP_FILENAME(0) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
'INP_FILENAME(3) 判定処理
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(3) AND HANTEI_TIME>INP_FILE_TIME_ONLY(3) THEN
LOG.WriteLine(INP_FILENAME(3) & "の更新日時は正常です。")
IF FILE_VALUE(1)<=LINE2 THEN
CNT_UP = LINE2
CNT_DOWN = FILE_VALUE(1)
ELSE
CNT_UP = FILE_VALUE(1)
CNT_DOWN = LINE2
END IF
IF CNT_UP-CNT_DOWN > -100 AND CNT_UP-CNT_DOWN < 100 THEN
LOG.WriteLine(INP_FILENAME(3) & "の値は正常閾値範囲内です。")
LOG.WriteBlankLines(1)
ELSE
LOG.WriteLine(INP_FILENAME(3) & "の値は正常閾値範囲外です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
LOG.WriteLine(INP_FILENAME(3) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********INP_FILENAME(2) INP_FILENAME(4) INP_FILENAME(5) INP_FILENAME(6) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(2) & " " & INP_FILENAME(4) & " " & INP_FILENAME(5) & " " & INP_FILENAME(6) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'INP_FILENAME(2) 判定処理
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(2) AND HANTEI_TIME>INP_FILE_TIME_ONLY(2) THEN
LOG.WriteLine(INP_FILENAME(2) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(2) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(2) & " " & INP_FILENAME(4) & " " & INP_FILENAME(5) & " " & INP_FILENAME(6) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
'INP_FILENAME(4) INP_FILENAME(5) INP_FILENAME(6) 判定処理
For t = Half_Value to Half_Value+2
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(t) AND HANTEI_TIME>INP_FILE_TIME_ONLY(t) THEN
LOG.WriteLine(INP_FILENAME(t) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(t) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(2) & " " & INP_FILENAME(4) & " " & INP_FILENAME(5) & " " & INP_FILENAME(6) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
NEXT
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(2) & " " & INP_FILENAME(4) & " " & INP_FILENAME(5) & " " & INP_FILENAME(6) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********INP_FILENAME(1) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(1) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'雛形更新日時出力処理
LOG.WriteLine(INP_FILENAME(1) & "が0件の場合の雛形更新日時は" & HINAGATA1_BEFORE & "です。")
'INP_FILENAME(1) 判定処理
IF INP_FILE_SIZE_ONLY(1)>0 THEN
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(1) AND HANTEI_TIME>INP_FILE_TIME_ONLY(1) THEN
LOG.WriteLine(INP_FILENAME(1) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(1) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(1) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
IF INP_FILE_DATE_ONLY(1)=HINAGATA1 THEN
LOG.WriteLine(INP_FILENAME(1) & "の件数は無い為、更新日時は雛形の日付で正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(1) & "の件数は無いですが、更新日時は雛形の日付ではありません。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(1) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
END IF
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(1) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********INP_FILENAME(7) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(7) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'前営業日出力ファイルオープン及び、出力処理
LINE3_1_BEFORE = TODAY_1_BEFORE.ReadLine
TODAY_1_BEFORE.CLOSE
LINE3=REPLACE(LINE3_1_BEFORE,"/","")
LOG.WriteLine("前営業日日付は" & LINE3_1_BEFORE & "です。")
'INP_FILENAME(7) 判定処理
IF INP_FILE_SIZE_ONLY(7)>0 THEN
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(7) THEN
LOG.WriteLine(INP_FILENAME(7) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(7) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(7) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
IF INP_FILE_DATE_ONLY(7)=LINE3 THEN
LOG.WriteLine(INP_FILENAME(7) & "の件数は無い為、更新日時は前営業日の日付で正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(7) & "の件数は無いですが、更新日時は前営業日の日付ではありません。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(7) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
END IF
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(7) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********INP_FILENAME(8) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(8) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'雛形更新日時出力処理
LOG.WriteLine(INP_FILENAME(8) & "が0件の場合の雛形更新日時は" & HINAGATA2_BEFORE & "です。")
'INP_FILENAME(8) 判定処理
IF INP_FILE_SIZE_ONLY(8)>0 THEN
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(8) THEN
LOG.WriteLine(INP_FILENAME(8) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(8) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(8) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
IF INP_FILE_DATE_ONLY(8)=HINAGATA2 THEN
LOG.WriteLine(INP_FILENAME(8) & "の件数は無い為、更新日時は雛形の日付で正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(8) & "の件数は無いですが、更新日時は雛形の日付ではありません。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(8) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
END IF
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(8) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********判定結果出力処理(正常)********
CALL LOG_LINE(LINE,"判定結果出力","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
LOG.WriteLine("" & OK_MESSAGE & "")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"判定結果出力","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********処理終了時間********
CALL LOG_LINE(LINE,"メイン","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
Set FSO = Nothing
WSCRIPT.QUIT
'★サブルーチン★-------------------------------------------------------------------------------
SUB LOG_LINE(LINE,SHORIMEI,ACTION)
'********時間変数宣言********
Dim YYYY , MM1 , DD , HH , MM2 , SS , PRIME_DATE , PRIME_TIME
YYYY = Year(DATE)
MM1 = Right("0" & MONTH(DATE), 2)
DD = DAY(DATE)
HH = Right("0" & Hour(TIME), 2)
MM2 = Right("0" & Minute(TIME), 2)
SS = Right("0" & Second(TIME), 2)
PRIME_DATE = YYYY & "/" & MM1 & "/" & DD
PRIME_TIME = HH & ":" & MM2 & ":" & SS
LINE = "★★★************** 処理日 = " & PRIME_DATE & " " & SHORIMEI & "処理" & ACTION & "時間= " & PRIME_TIME & " ***************★★★"
END SUB
SUB NG_END
CALL LOG_LINE(LINE,"判定結果出力","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
LOG.WriteLine("" & NG_MESSAGE & "")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"判定結果出力","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"メイン","終了")
LOG.WriteLine(LINE)
WSCRIPT.QUIT
END SUB
これをマクロ化出来ないだろうか?
'** VBS名 : 判定.vbs
'** 作成日 : YYYY.MM.DD
'** 作成者 : TESTER
'** 処理概要 : 処理
'** 変更日 変更内容 変更者
'** yyyymmdd ここに変更内容記述する。 xxxxxx
'**************************************************************************
'********変数強制宣言********
Option Explicit
'********フラグ変数定義********
Dim OK
'********オブジェクト変数定義********
Dim FSO , LOG , INP_OBJ , INP_DM , F , DATA1 , DATA2 , TODAY_1_BEFORE
'********配列宣言************
Dim INP_FILENAME
INP_FILENAME = Array("A.TXT" , "B.TXT" , "C.TXT" , "D.TXT" , "E.TXT" , _
"F.TXT" , "G.TXT" , "H.TXT" , "I.TXT")
Dim INP_FILE_DATE_ONLY_BEFORE(8)
Dim INP_FILE_TIME_ONLY_BEFORE(8)
Dim INP_FILE_DATE_ONLY(8)
Dim INP_FILE_TIME_ONLY(8)
Dim INP_FILE_SIZE_ONLY(8)
Dim INP_FILENAME_VALUE(1)
Dim FILE_VALUE(1)
'********カウント変数宣言************
Dim i , t , Minimum_Value , Half_Value , Maximum_Value , CNT_UP , CNT_DOWN
'********フォルダ変数宣言************
Dim MAIN_DIR , INP_DIR , LOG_DIR
'********ファイル変数宣言************
Dim LOG_FILE1 , LOG_FILENAME1
Dim LOG_FILE2 , LOG_FILENAME2
Dim LOG_FILE3 , LOG_FILENAME3
Dim LOG_FILE4 , LOG_FILENAME4
'********時間変数宣言********
Dim YYYY , MM1 , DD , HANTEI_TIME
'********レコード長変数宣言************
Dim RECORD_LENGTH1 , RECORD_LENGTH2
'********メッセージ変数宣言********
Dim OK_MESSAGE , NG_MESSAGE
'********その他変数宣言************
Dim LINE ,LINE1 , LINE2 , LINE3 , LINE3_1_BEFORE , HINAGATA1_BEFORE , HINAGATA2_BEFORE , HINAGATA1 , HINAGATA2 , I_DATA1 , I_DATA2
'********初期設定********
MAIN_DIR = "D:\IFFILE"
INP_DIR = MAIN_DIR & "\test"
LOG_DIR = MAIN_DIR & "\LOG"
LOG_FILE1 = "CHECK_LOG.txt"
LOG_FILE2 = "TEST1.txt"
LOG_FILE3 = "TEST2.txt"
LOG_FILE4 = "TODAY_1_BEFORE.txt"
LOG_FILENAME1 = LOG_DIR & "\" & LOG_FILE1
LOG_FILENAME2 = LOG_DIR & "\" & LOG_FILE2
LOG_FILENAME3 = LOG_DIR & "\" & LOG_FILE3
LOG_FILENAME4 = LOG_DIR & "\" & LOG_FILE4
i = 0
t = 0
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set LOG = FSO.OpenTextFile(LOG_FILENAME1, 2, True)
Set DATA1 = FSO.OpenTextFile(LOG_FILENAME2,1)
Set DATA2 = FSO.OpenTextFile(LOG_FILENAME3,1)
Set TODAY_1_BEFORE = FSO.OpenTextFile(LOG_FILENAME4,1)
OK_MESSAGE = "正常終了"
NG_MESSAGE = "異常終了"
Minimum_Value = "0"
Maximum_Value = "8"
Half_Value = Maximum_Value / 2
YYYY = Year(DATE)
MM1 = Right("0" & MONTH(DATE), 2)
DD = DAY(DATE)
RECORD_LENGTH1 = 340
RECORD_LENGTH2 = 500
HANTEI_TIME = "220000"
HINAGATA1_BEFORE = "2010/03/22"
HINAGATA1 = "20100322"
HINAGATA2_BEFORE = "2010/03/22"
HINAGATA2 = "20100322"
I_DATA1="データ1"
I_DATA2="データ2"
'********処理開始時間********
CALL LOG_LINE(LINE,"メイン","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********ファイル存在確認処理********
CALL LOG_LINE(LINE,"ファイル存在確認","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
For i = Minimum_Value to Maximum_Value
IF FSO.FileExists(INP_DIR & "\" & INP_FILENAME(i)) THEN
LOG.WriteLine(INP_FILENAME(i) & "は存在しています。")
ELSE
LOG.WriteLine(INP_FILENAME(i) & "は存在していません。")
OK = 1
END IF
NEXT
IF OK = 0 THEN
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"ファイル存在確認","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
ELSE
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"ファイル存在確認","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
'********ファイル更新日時確認処理********
CALL LOG_LINE(LINE,"ファイル更新日時確認","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
For i = Minimum_Value to Maximum_Value
Set INP_OBJ = FSO.Getfile(INP_DIR & "\" & INP_FILENAME(i))
INP_FILE_DATE_ONLY_BEFORE(i) = _
Year(INP_OBJ.DateLastModified) & "/" & _
Right("0" & Month(INP_OBJ.DateLastModified), 2) & "/" & _
Right("0" & Day(INP_OBJ.DateLastModified), 2)
INP_FILE_TIME_ONLY_BEFORE(i) = _
Right("0" & Hour(INP_OBJ.DateLastModified), 2) & ":" & _
Right("0" & Minute(INP_OBJ.DateLastModified), 2) & ":" & _
Right("0" & Second(INP_OBJ.DateLastModified), 2)
INP_DM = INP_FILE_DATE_ONLY_BEFORE(i) & " " & INP_FILE_TIME_ONLY_BEFORE(i)
LOG.WriteLine(INP_FILENAME(i) & "の更新日時は " & INP_DM)
INP_FILE_DATE_ONLY(i) = Replace(INP_FILE_DATE_ONLY_BEFORE(i),"/","")
INP_FILE_TIME_ONLY(i) = Replace(INP_FILE_TIME_ONLY_BEFORE(i),":","")
INP_FILE_SIZE_ONLY(i) = INP_OBJ.size
NEXT
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"ファイル更新日時確認","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********INP_FILENAME(0) INP_FILENAME(3) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'本日出力件数ファイルオープン及び、出力処理
LINE1 = DATA1.ReadLine
LINE2 = DATA2.ReadLine
DATA1.CLOSE
DATA2.CLOSE
LOG.WriteLine("本日の" & I_DATA1 & "は" & LINE1 & "件です。")
LOG.WriteLine("本日の" & I_DATA2 & "は" & LINE2 & "件です。")
'INP_FILENAME(0) INP_FILENAME(3) レングスサイズ判定処理
INP_FILENAME_VALUE(0) = INP_FILE_SIZE_ONLY(0) / RECORD_LENGTH1
INP_FILENAME_VALUE(1) = INP_FILE_SIZE_ONLY(3) / RECORD_LENGTH2
FILE_VALUE(0) = Fix(INP_FILENAME_VALUE(0))
IF FILE_VALUE(0) = INP_FILENAME_VALUE(0) THEN
LOG.WriteLine(INP_FILENAME(0) & "のレングスは正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(0) & "のレングスは異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
FILE_VALUE(1) = Fix(INP_FILENAME_VALUE(1))
IF FILE_VALUE(1) = INP_FILENAME_VALUE(1) THEN
LOG.WriteLine(INP_FILENAME(3) & "のレングスは正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(3) & "のレングスは異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
'INP_FILENAME(0) 判定処理
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(0) AND HANTEI_TIME>INP_FILE_TIME_ONLY(0) THEN
LOG.WriteLine(INP_FILENAME(0) & "の更新日時は正常です。")
IF FILE_VALUE(0)<=LINE1 THEN
CNT_UP = LINE1
CNT_DOWN = FILE_VALUE(0)
ELSE
CNT_UP = FILE_VALUE(0)
CNT_DOWN = LINE1
END IF
IF CNT_UP-CNT_DOWN > -100 AND CNT_UP-CNT_DOWN < 100 THEN
LOG.WriteLine(INP_FILENAME(0) & "の値は正常閾値範囲内です。")
ELSE
LOG.WriteLine(INP_FILENAME(0) & "の値は正常閾値範囲外です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
LOG.WriteLine(INP_FILENAME(0) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
'INP_FILENAME(3) 判定処理
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(3) AND HANTEI_TIME>INP_FILE_TIME_ONLY(3) THEN
LOG.WriteLine(INP_FILENAME(3) & "の更新日時は正常です。")
IF FILE_VALUE(1)<=LINE2 THEN
CNT_UP = LINE2
CNT_DOWN = FILE_VALUE(1)
ELSE
CNT_UP = FILE_VALUE(1)
CNT_DOWN = LINE2
END IF
IF CNT_UP-CNT_DOWN > -100 AND CNT_UP-CNT_DOWN < 100 THEN
LOG.WriteLine(INP_FILENAME(3) & "の値は正常閾値範囲内です。")
LOG.WriteBlankLines(1)
ELSE
LOG.WriteLine(INP_FILENAME(3) & "の値は正常閾値範囲外です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
LOG.WriteLine(INP_FILENAME(3) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
CALL LOG_LINE(LINE,INP_FILENAME(0) & " " & INP_FILENAME(3) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********INP_FILENAME(2) INP_FILENAME(4) INP_FILENAME(5) INP_FILENAME(6) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(2) & " " & INP_FILENAME(4) & " " & INP_FILENAME(5) & " " & INP_FILENAME(6) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'INP_FILENAME(2) 判定処理
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(2) AND HANTEI_TIME>INP_FILE_TIME_ONLY(2) THEN
LOG.WriteLine(INP_FILENAME(2) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(2) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(2) & " " & INP_FILENAME(4) & " " & INP_FILENAME(5) & " " & INP_FILENAME(6) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
'INP_FILENAME(4) INP_FILENAME(5) INP_FILENAME(6) 判定処理
For t = Half_Value to Half_Value+2
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(t) AND HANTEI_TIME>INP_FILE_TIME_ONLY(t) THEN
LOG.WriteLine(INP_FILENAME(t) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(t) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(2) & " " & INP_FILENAME(4) & " " & INP_FILENAME(5) & " " & INP_FILENAME(6) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
NEXT
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(2) & " " & INP_FILENAME(4) & " " & INP_FILENAME(5) & " " & INP_FILENAME(6) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********INP_FILENAME(1) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(1) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'雛形更新日時出力処理
LOG.WriteLine(INP_FILENAME(1) & "が0件の場合の雛形更新日時は" & HINAGATA1_BEFORE & "です。")
'INP_FILENAME(1) 判定処理
IF INP_FILE_SIZE_ONLY(1)>0 THEN
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(1) AND HANTEI_TIME>INP_FILE_TIME_ONLY(1) THEN
LOG.WriteLine(INP_FILENAME(1) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(1) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(1) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
IF INP_FILE_DATE_ONLY(1)=HINAGATA1 THEN
LOG.WriteLine(INP_FILENAME(1) & "の件数は無い為、更新日時は雛形の日付で正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(1) & "の件数は無いですが、更新日時は雛形の日付ではありません。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(1) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
END IF
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(1) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********INP_FILENAME(7) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(7) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'前営業日出力ファイルオープン及び、出力処理
LINE3_1_BEFORE = TODAY_1_BEFORE.ReadLine
TODAY_1_BEFORE.CLOSE
LINE3=REPLACE(LINE3_1_BEFORE,"/","")
LOG.WriteLine("前営業日日付は" & LINE3_1_BEFORE & "です。")
'INP_FILENAME(7) 判定処理
IF INP_FILE_SIZE_ONLY(7)>0 THEN
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(7) THEN
LOG.WriteLine(INP_FILENAME(7) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(7) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(7) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
IF INP_FILE_DATE_ONLY(7)=LINE3 THEN
LOG.WriteLine(INP_FILENAME(7) & "の件数は無い為、更新日時は前営業日の日付で正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(7) & "の件数は無いですが、更新日時は前営業日の日付ではありません。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(7) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
END IF
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(7) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********INP_FILENAME(8) 判定処理********
CALL LOG_LINE(LINE,INP_FILENAME(8) & " 判定","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'雛形更新日時出力処理
LOG.WriteLine(INP_FILENAME(8) & "が0件の場合の雛形更新日時は" & HINAGATA2_BEFORE & "です。")
'INP_FILENAME(8) 判定処理
IF INP_FILE_SIZE_ONLY(8)>0 THEN
IF YYYY & MM1 & DD=INP_FILE_DATE_ONLY(8) THEN
LOG.WriteLine(INP_FILENAME(8) & "の更新日時は正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(8) & "の更新日時は異常です。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(8) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
ELSE
IF INP_FILE_DATE_ONLY(8)=HINAGATA2 THEN
LOG.WriteLine(INP_FILENAME(8) & "の件数は無い為、更新日時は雛形の日付で正常です。")
ELSE
LOG.WriteLine(INP_FILENAME(8) & "の件数は無いですが、更新日時は雛形の日付ではありません。")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(8) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL NG_END
END IF
END IF
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,INP_FILENAME(8) & " 判定","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********判定結果出力処理(正常)********
CALL LOG_LINE(LINE,"判定結果出力","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
LOG.WriteLine("" & OK_MESSAGE & "")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"判定結果出力","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
'********処理終了時間********
CALL LOG_LINE(LINE,"メイン","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
Set FSO = Nothing
WSCRIPT.QUIT
'★サブルーチン★-------------------------------------------------------------------------------
SUB LOG_LINE(LINE,SHORIMEI,ACTION)
'********時間変数宣言********
Dim YYYY , MM1 , DD , HH , MM2 , SS , PRIME_DATE , PRIME_TIME
YYYY = Year(DATE)
MM1 = Right("0" & MONTH(DATE), 2)
DD = DAY(DATE)
HH = Right("0" & Hour(TIME), 2)
MM2 = Right("0" & Minute(TIME), 2)
SS = Right("0" & Second(TIME), 2)
PRIME_DATE = YYYY & "/" & MM1 & "/" & DD
PRIME_TIME = HH & ":" & MM2 & ":" & SS
LINE = "★★★************** 処理日 = " & PRIME_DATE & " " & SHORIMEI & "処理" & ACTION & "時間= " & PRIME_TIME & " ***************★★★"
END SUB
SUB NG_END
CALL LOG_LINE(LINE,"判定結果出力","開始")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
LOG.WriteLine("" & NG_MESSAGE & "")
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"判定結果出力","終了")
LOG.WriteLine(LINE)
LOG.WriteBlankLines(1)
CALL LOG_LINE(LINE,"メイン","終了")
LOG.WriteLine(LINE)
WSCRIPT.QUIT
END SUB
これをマクロ化出来ないだろうか?
投票数:38
平均点:4.47
返信する
この投稿に返信する
投稿ツリー
-
小規模判定 (ゲスト, 2010-3-22 9:45)