Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' APP_NAME - verzia finder (test)
- ' Apr 29, 2025
- Const version = "1.0.0"
- Dim winver : winver = Salamander.WindowsVersion
- Dim ASver : ASver = Salamander.Version
- Dim basePath
- basePath = "H:\Apps\APP_PATH" ' <- testovacia cesta
- Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
- If Not fso.FolderExists(basePath) Then
- ' Cesta neexistuje, skonči, DO NOHING
- ' Salamander.TargetPanel.Path = basePath
- Else
- Dim folder, subfolder
- Dim bestFolderPath, bestVersion
- Set folder = fso.GetFolder(basePath)
- For Each subfolder In folder.SubFolders
- Dim folderName, versionText
- folderName = subfolder.Name
- If LCase(Left(folderName, 1)) = "v" Then
- ' Extrahuj verziu medzi "v" a prvou medzerou (alebo koncom)
- Dim firstSpace
- firstSpace = InStr(folderName, " ")
- If firstSpace > 2 Then
- versionText = Mid(folderName, 2, firstSpace - 2)
- Else
- versionText = Mid(folderName, 2)
- End If
- ' Skontroluj, či verzia má správny formát
- If IsVersion(versionText) Then
- If bestVersion = "" Or CompareVersions(versionText, bestVersion) > 0 Then
- bestVersion = versionText
- bestFolderPath = subfolder.Path
- End If
- End If
- End If
- Next
- ' Ak je nájdený priečinok s platnou verziou, nastav ho
- If bestFolderPath <> "" Then
- Salamander.TargetPanel.Path = bestFolderPath
- Else
- ' Inak, prejdeme na pôvodný basePath (žiadna ďalšia akcia)
- Salamander.TargetPanel.Path = basePath
- End If
- End If
- ' --- Pomocné funkcie ---
- Function CompareVersions(v1, v2)
- Dim arr1, arr2, i, n1, n2, maxLen
- arr1 = Split(v1, ".")
- arr2 = Split(v2, ".")
- maxLen = Max(UBound(arr1), UBound(arr2))
- For i = 0 To maxLen
- If i <= UBound(arr1) Then n1 = CInt(arr1(i)) Else n1 = 0
- If i <= UBound(arr2) Then n2 = CInt(arr2(i)) Else n2 = 0
- If n1 > n2 Then CompareVersions = 1 : Exit Function
- If n1 < n2 Then CompareVersions = -1 : Exit Function
- Next
- CompareVersions = 0
- End Function
- Function Max(a, b)
- If a > b Then Max = a Else Max = b
- End Function
- Function IsVersion(str)
- Dim parts, part
- parts = Split(str, ".")
- If UBound(parts) < 0 Then IsVersion = False : Exit Function
- For Each part In parts
- If Not IsNumeric(part) Then IsVersion = False : Exit Function
- Next
- IsVersion = True
- End Function
Advertisement
Add Comment
Please, Sign In to add comment