Global It Leader!!



 
 

VB 진행바 표시 만들기

페이지 정보

작성자 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 1건 조회 5,148회 작성일 12-08-09 20:06

본문

 

 

아래 예제를 참고하세요.  질문란의 코드 기준으로 글꼴 색상 파란색으로 정의된 세 개의 변수는 다음 기능을 위해 추가된 것입니다.

 

- 경과시간을 lblElapsed에 초 단위로 표시

- 수신데이터양을 lblFSize에 KB단위로 표시

- 진행률을 프로그레스바 PB1에 표시

 

Sub Download_with_ProgressBar()

    Dim dURL As String    '다운로드할 파일의 URL (source)
    Dim FileName As String    '저장할 파일명 (destination)
    Dim DownURL() As Byte    '매 수신 데이터를 저장할 바이트 배열

    Dim BytesIn As Double    '전송받은 데이터양(바이트 단위)
    Dim FileSize As Long    '전송받을 파일의 크기(바이트 단위)
    Dim StartTime As Double    '전송시작시간

 

    dURL = ""    '다운로드할 파일의 URL

    FileName = "C:\file.zip" '저장할 파일명

    
    '(1) 전송받을 파일크기 가져오기 -------------------------------------------
    fInet.URL = dURL
    fInet.Execute , "GET", , "FSize in Bytes: " & CStr(FileSize) & vbCrLf
       
    '요청한 정보의 전송이 끝날 때까지 대기하되
    Do While fInet.StillExecuting
        'VB가 할 일이 없는 동안에는 시스템이 일할 수 있도록
        DoEvents
    Loop
    '전송받은 헤더정보에서 파일크기를 추출
    FileSize = CLng(fInet.GetHeader("Content-length"))

 

    '(2) 저장할 파일을 열어 다운로드 실행 -------------------------------------
    '저장할 파일을 열어
    StartTime = Now()
    Open FileName For Binary As #1
        Do
            '1024바이트 단위로 전송받되 바이트 어레이로
            DownURL = fInet.GetChunk(1024, icByteArray)
            '열린 파일에 전송받은 데이터를 추가
            Put #1, , DownURL
            '받은 데이터량을 적산
            BytesIn = BytesIn + UBound(DownURL, 1) + 1
            '경과시간 표시
            lblElapsed = Int(86400 * (Now() - StartTime)) & " sec"
            '받은 데이터량 라벨에 표시
            lblFSize = Round(BytesIn / 1024) & " KB"
            '프로그레스바 업데이트
            PB1.Value = Round(100 * BytesIn / FileSize)
            'VB가 할 일이 없는 동안에는 시스템이 일할 수 있도록
            DoEvents
        '더 이상 다운로드 받은 데이터가 없을 때까지 계속
        Loop While UBound(DownURL, 1) > 0
    Close #1
End Sub

 

※ Internet Transfer Control 관련 다음 메소드/속성들의 상세한 설명은 VB도움말에 있습니다: Execute, StillExecuting, GetHeader, GetChunk

[이 게시물은 오원장님에 의해 2013-02-28 16:41:58 오피스팁에서 이동 됨]

댓글목록

전체 440
게시물 검색
컴퓨터언어 목록
번호 제목 글쓴이 조회 날짜
200 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8250 07-08
199 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9307 07-05
198 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8800 07-04
197 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8873 07-02
196 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8092 07-01
195 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4866 10-29
194 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5320 08-31
193 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10434 08-31
192 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5280 08-31
191 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6576 08-31
190 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7000 08-29
189 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4828 08-29
188 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5711 08-24
열람중 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5149 08-09
186 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6009 08-09
185 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5576 04-07
184 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 13227 01-07
183 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7347 12-01
182 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7477 04-08
181 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9552 04-08