VB-скрипт проверки контрольных сумм (Конва-итоговая справка)

Автор:Izmajlov
Дата:20.01.2004
Просмотров:2491
Скачиваний:2097
Оценка: - , Оценок - 0
Сохранить в файле

Обсудить в форуме

Текст примера

 Для тех, кто контролирует макет Конвой, могу предложить скрипт (VBS), который сравнивает файл итогов дня (DBF) со справкой ("нулевкой"). Если расхождение - то выдается сообщение. Можно закомментарить msgBox и анализировать в батнике errorlevel, который возвращается скриптом.
Измайлов Ф.В.

fileDBF = "itogday.dbf"
'' настроить на свой путь
pathDBF="c:\mci\"

fileSKB = "bXXX0000.skb"
'' настроить на свой путь
pathSKB="C:\astra_2\MAILBOX\BXXX\R\"
'' XXX - последние 3 цифры БИКа

Function OpenDBFConn(fxPath)
Dim Conn: Set Conn = CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & fxPath & ";" & _
"Extended Properties=""DBASE IV;"";" 
Set OpenDBFConn = Conn
End Function

Set fso = CreateObject("Scripting.FileSystemObject")

if (fso.FileExists(pathDBF+fileDBF)) then
Dim DBConn
Set DBConn = OpenDBFConn(pathDBF)
Dim Persons
Set Docs = DBConn.Execute("Select SUM(dokdt) from [itogday#DBF] WHERE nmak=''R''")
Set Summa = DBConn.Execute("Select SUM(sumdt) from [itogday#DBF] WHERE nmak=''R''")
if (fso.FileExists(pathSKB+fileSKB)) then
Set txtStream = fso.OpenTextFile(pathSKB+fileSKB) '' Open text file.
txtStream.SkipLine
txtStream.SkipLine
txtStream.SkipLine
txtStream.SkipLine
txtStream.SkipLine
strLine=txtStream.ReadLine
nDoc=CInt(Mid(strLine,7,7))
nSum=CDbl(Mid(strLine,14,17))/100
if ( CDbl(Summa(0)/100) <> CDbl(nSum)) or ( CInt(Docs(0)) <> nDoc) then
msgBox("Внимание!!! есть расхождение в КОНВЕ и справке "+fileSKB)
'' возвращаем 1, что значит - ошибка
WScript.Sleep(500)
WScript.Quit(1)
end if
else
msgBox(" File \''" + fileSKB + "\'' not found")
WScript.Sleep(500)
Set fso = Nothing
WScript.Quit(1)
end if
else
msgBox(" File \''" + fileDBF + "\'' not found")
WScript.Sleep(500)
WScript.Quit(1)
end if
WScript.Sleep(500)
Set fso = Nothing
WScript.Quit(0)