%REM
Function getContentShort
Description: возвращает "краткое содержимое" переданной строки, получая символы из позиций, рассчитанных по пропорции
lenRes - количество символов содержимого, которые будут возвращены из файла (больше - точнее, но медленнее)
Если sHash:
- "", функция вернёт "";
- меньше lenRes+3 символов - просто вернёт первые lenRes символов содержимого
%END REM
Public Function getContentShort(sHash As String, lenRes As Integer) As String
If lenRes <= 0 Then Exit Function
Dim lenHash As Long
lenHash = Len(sHash)
Select Case lenHash
Case 0:
Exit Function
Case 1 To lenRes:
getContentShort = sHash
Case Is < lenRes + 3: 'для скорости; вычислять смысла нет при одинаковом-то результате
getContentShort = Mid$(sHash, 1, lenRes)
Case Else:
Dim nMax As Integer, i As Integer, pos As Long
nMax = lenRes + 1
For i = 1 To lenRes
pos = Fix((i / nMax) * lenHash)
getContentShort = getContentShort + Mid$(sHash, pos, 1)
Next
End Select
End Function