H
hosm
<!--quest1--><br/><div class='questdiv'><TABLE cellpadding='0' cellspacing='0' border='0'><TD align='middle' vAlign='center' width="1%" style='background-color: #fffc00; color: black; font-family: Times New Roman, Serif; font-size: 25px; font-weight: bold;' title='Вопрос'> Q: </TD><TD width='6px'><br/></TD><TD vAlign='middle'><br/><!--equest1-->FileLen для файла размером 3Gb возвращает отрицательное значение...
Может можно как-то заставить её давать правильные значения?<!--quest2--><br/><br/></TD></TABLE></div><!--equest2-->
Совет и код TIA [post="166755"]отсюда[/post]
Размер файла выше 2,147,483,647 вызывает переполнение и представляется отрицательным числом. Потому и надо перевести в беззнаковое.
Вот, до 4Гб будет работать, а выше уже FileLen нельзя использовать:
Может можно как-то заставить её давать правильные значения?<!--quest2--><br/><br/></TD></TABLE></div><!--equest2-->
Совет и код TIA [post="166755"]отсюда[/post]
Размер файла выше 2,147,483,647 вызывает переполнение и представляется отрицательным числом. Потому и надо перевести в беззнаковое.
Вот, до 4Гб будет работать, а выше уже FileLen нельзя использовать:
Код:
Function SignToUnsign( x As Long) As Currency
SignToUnsign = x
If x<0 Then
SignToUnsign = (x And &h7FFFFFFF) + 2147483648
End If
End Function