Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как организовать копирование файла со статусом копирования в ProgressBar?Срочно!

1.8K
06 февраля 2008 года
NextTime
217 / / 19.12.2007
Вот, делаю файловый менеджер. Надо сделать копирование с отображением статуса в ProgressBar, в котором будет отображаться проценты завершения. функции FileCopy и Copy сразу отпадают. Надо открыть с каким то доступом исходный файл и конечный, и копировать кусками. Но Append ведь используется не для бинарных файлов...Помогите. Очень буду благодарен!
405
07 февраля 2008 года
Dmitrii
554 / / 16.12.2004
Цитата: NextTime
Вот, делаю файловый менеджер. Надо сделать копирование с отображением статуса в ProgressBar, в котором будет отображаться проценты завершения. функции FileCopy и Copy сразу отпадают. Надо открыть с каким то доступом исходный файл и конечный, и копировать кусками. Но Append ведь используется не для бинарных файлов...Помогите. Очень буду благодарен!

Можете приспособить под свои нужды вот такую заготовку:

Код:
Private Function Example(fileSrc As String, fileDst As String) As Single
Static bufString As String
Dim remainderSize As Single, fileSize As Single
Dim filePortion As Integer, hFile1 As Integer, hFile2 As Integer

On Error GoTo ErrCase
hFile1 = FreeFile
Open fileSrc For Binary Access Read As hFile1
hFile2 = FreeFile
Open fileDst For Binary Access Write As hFile2
fileSize = LOF(hFile1)
remainderSize = fileSize - LOF(hFile2)
Do
    If remainderSize < BUFSIZE Then
       filePortion = remainderSize
    Else
       filePortion = BUFSIZE
    End If
    bufString = String(filePortion, " ")
    Get hFile1, , bufString
    Put hFile2, , bufString
    remainderSize = fileSize - LOF(hFile2)
    If proBar.Value < proBar.Max Then
        proBar.Value = proBar.Value + 1
    End If
Loop Until remainderSize = 0
Close hFile1
Close hFile2
Example = fileSize
Exit Function

ErrCase:
MsgBox Err.Number & vbCr & Err.Description, vbCritical, "Ошибка"
Err.Clear
Close hFile1
Close hFile2
Example = -1
End Function

Вычисление и отображение процентов организуйте сами.
В принципе, можно воспользоваться средствами, уже имеющимся в инструментарии WSH,- это методы [color=blue]CopyHere[/color] и [color=blue]MoveHere[/color]. Правда процентов они не покажут.
1.8K
08 февраля 2008 года
NextTime
217 / / 19.12.2007
Огромное Спасибо! скоро буду разбираться с этим!
p.s. про copyhere, вот интересно.... вам понравилосьь бы, если бы файловый менеджер копировал бы не показывая статус копирования? толи он повис толи еще чего....
405
11 февраля 2008 года
Dmitrii
554 / / 16.12.2004
Цитата: NextTime
p.s. про copyhere, вот интересно.... вам понравилосьь бы, если бы файловый менеджер копировал бы не показывая статус копирования? толи он повис толи еще чего....

Эти методы упомянуты именно потому, что они [color=green]позволяют отобразить индикатор[/color] процесса. Не позволяют они отображать лишь [color=red]процентное значение[/color] выполненной работы.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог