Добрый день!
Подскажите, можно ли в VB скомпилировать файл точно заданного размера (с точностью до байта)?


Sub SetFileSize(Byval sFileName As String, byval lFileSize)
Dim hFile As Long
hFile = FreeFile()
Open sFileName For Binary as #hFile
Select Case LOF(hFile)
Case Is < lFileSize
Put #hFile, LOF(hFile)+1, Space(lFileSize - LOF(hFile))
Close #hFile
Case lFileSize
'Файл и так имеет нужный размер - ничего не делаем.
Case Is > lFileSize
err.Raise 5,,"Желаемый размер файла меньше реального."
End Sub




Хакер писал(а):Неа. В АпиГуиде её нет, поэтому надо самому догадываться, как она работает.


tyomitch писал(а):Хакер писал(а):Неа. В АпиГуиде её нет, поэтому надо самому догадываться, как она работает.
Да ну прямо? http://www.mentalis.org/apilist/SetEndOfFile.shtml

На локальной версии далеко не уедешь...Хакер писал(а):tyomitch писал(а):Хакер писал(а):Неа. В АпиГуиде её нет, поэтому надо самому догадываться, как она работает.
Да ну прямо? http://www.mentalis.org/apilist/SetEndOfFile.shtml
Я имел ввиду в локальной версии. Т.е. в проге а не на каком то сайте. Я денег не наберусь залить по сайтам, ради описания 1-ой апишки.

andreymp писал(а):не совсем так.SetEndOfFile 'устанавливаем длину файла=позиции указателя
SetEndOfFile - переводит текущую позицию в конец открытого файла. (Д.Эпплман)
andreymp писал(а):SetFilePointer - не работает с файлами более 2^64 байт.


Хакер писал(а):Я имел ввиду в локальной версии. Т.е. в проге а не на каком то сайте. Я денег не наберусь залить по сайтам, ради описания 1-ой апишки.


andreymp писал(а):не совсем так.SetEndOfFile 'устанавливаем длину файла=позиции указателя
SetEndOfFile - переводит текущую позицию в конец открытого файла. (Д.Эпплман)
Так что ты не прав...http://www.allapi.net/apilist/SetEndOfFile.shtml писал(а):The SetEndOfFile function moves the end-of-file (EOF) position for the specified file to the current position of the file pointer.


Ну хватит вам, горячие финские парни...Хакер писал(а):tyomitch
Выкладывая 200-300 у.е. каждый месяц за инет, ты бы наверное понял меня.

Sub SetFileSize(Byval sFileName As String, byval lFileSize)
Dim hFile As Long
hFile = FreeFile()
Open sFileName For Binary as #hFile
Select Case LOF(hFile)
Case Is < lFileSize
Put #hFile, lFileSize, CByte(0)
Close #hFile
Case lFileSize
'Файл и так имеет нужный размер - ничего не делаем.
Case Is > lFileSize
err.Raise 5,,"Желаемый размер файла меньше реального."
End Sub

andreymp писал(а):стр.784
Sets the current file position to be the end of file for an open file.

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18