Files
EPANET/tests/scripts/vb6_binary_files_compare/frmMain.frm
2018-04-09 15:03:03 +03:00

180 lines
4.8 KiB
Plaintext

VERSION 5.00
Begin VB.Form frmMain
Caption = "Form1"
ClientHeight = 5304
ClientLeft = 48
ClientTop = 396
ClientWidth = 9648
LinkTopic = "Form1"
ScaleHeight = 5304
ScaleWidth = 9648
StartUpPosition = 3 'Windows Default
Begin VB.ListBox List1
Height = 4272
Left = 1680
TabIndex = 1
Top = 360
Width = 7092
End
Begin VB.CommandButton cmdRun
Caption = "RUN"
Height = 372
Left = 360
TabIndex = 0
Top = 360
Width = 972
End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim NetName As String
Dim net1 As typNetRes
Dim net2 As typNetRes
Private Sub CompareVersions(NetName As String)
'-----------------------------------------------
Dim i As Long
Dim v1 As Single, v2 As Single
Dim T As Long
Dim L As Long
Dim maxDiff As Single
Dim diff As Single
Dim nRep As Long
Dim F As Long
i = ShellSync("epanet2d.exe nets\" & NetName & ".inp nets\" & NetName & "_1.rep nets\" & NetName & "_1.out", vbNormalFocus)
i = ReadOutputFile("nets\" & NetName & "_1.out", net1)
i = ShellSync("epanet2.exe nets\" & NetName & ".inp nets\" & NetName & "_2.rep nets\" & NetName & "_2.out", vbNormalFocus)
i = ReadOutputFile("nets\" & NetName & "_2.out", net2)
F = FreeFile
Open App.Path & "\Nets\" & NetName & ".dif" For Output As #F
nRep = UBound(net1.LinksFlow, 2)
maxDiff = 100: diff = 101
For L = 1 To net1.nLinks
For T = 1 To nRep
v1 = net1.LinksFlow(L, T)
v2 = net2.LinksFlow(L, T)
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
If diff < maxDiff Then maxDiff = diff
Next T
Next L
Print #F, "Links Flow max diff = " & Format(maxDiff, "0")
maxDiff = 100: diff = 101
For L = 1 To net1.nLinks
For T = 1 To nRep
v1 = net1.LinksHeadloss(L, T)
v2 = net2.LinksHeadloss(L, T)
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
If diff < maxDiff Then maxDiff = diff
Next T
Next L
Print #F, "Links Headloss max diff = " & Format(maxDiff, "0")
maxDiff = 100: diff = 101
For L = 1 To net1.nLinks
For T = 1 To nRep
v1 = net1.LinksQuality(L, T)
v2 = net2.LinksQuality(L, T)
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
If diff < maxDiff Then maxDiff = diff
Next T
Next L
Print #F, "Links Quality max diff = " & Format(maxDiff, "0")
maxDiff = 100: diff = 101
For L = 1 To net1.nLinks
For T = 1 To nRep
v1 = net1.LinksVelocity(L, T)
v2 = net2.LinksVelocity(L, T)
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
If diff < maxDiff Then maxDiff = diff
Next T
Next L
Print #F, "Links Velocity max diff = " & Format(maxDiff, "0")
maxDiff = 100: diff = 101
For L = 1 To net1.nNodes
For T = 1 To nRep
v1 = net1.NodesDemand(L, T)
v2 = net2.NodesDemand(L, T)
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
If diff < maxDiff Then maxDiff = diff
Next T
Next L
Print #F, "Nodes Demand max diff = " & Format(maxDiff, "0")
maxDiff = 100: diff = 101
For L = 1 To net1.nNodes
For T = 1 To nRep
v1 = net1.NodesHead(L, T)
v2 = net2.NodesHead(L, T)
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
If diff < maxDiff Then maxDiff = diff
Next T
Next L
Print #F, "Nodes Head max diff = " & Format(maxDiff, "0")
maxDiff = 100: diff = 101
For L = 1 To net1.nNodes
For T = 1 To nRep
v1 = net1.NodesPressure(L, T)
v2 = net2.NodesPressure(L, T)
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10))
If diff < maxDiff Then maxDiff = diff
Next T
Next L
Print #F, "Nodes Pressure max diff = " & Format(maxDiff, "0")
maxDiff = 100: diff = 101
For L = 1 To net1.nNodes
For T = 1 To nRep
v1 = net1.NodesQuality(L, T)
v2 = net2.NodesQuality(L, T)
If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2))) / Log(10)
If diff < maxDiff Then maxDiff = diff
Next T
Next L
Print #F, "Nodes Quality max diff = " & Format(maxDiff, "0")
Close #F
End Sub
Private Sub cmdRun_Click()
'----------------------------------------------
Dim fName As String
fName = Dir(App.Path & "\Nets\*.inp")
If fName <> "" Then
Do
List1.AddItem fName: DoEvents
fName = StrReverse(fName)
fName = Mid(fName, 5)
fName = StrReverse(fName)
Call CompareVersions(fName)
fName = Dir
Loop Until fName = ""
End If
End Sub
Private Sub Form_Load()
List1.Clear
End Sub