VB-скрипт проверки контрольных сумм (Конва-итоговая справка)
Сохранить в файлеОбсудить в форуме
Текст примера
Для тех, кто контролирует макет Конвой, могу предложить скрипт (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)