Visual Basic > Tip&Tech > 진행바 표시 만들기
 
Visual Studio
Library
Tip&Tech
Q&A
 
 
Tip&Tech
  HOME > Visual Basic > Tip&Tech
 
작성일 : 10-01-20 18:27
진행바 표시 만들기
 글쓴이 : 덩벙이 (211.♡.155.10)
조회 : 5,881   추천 : 0   비추천 : 0  

 

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

 

- 경과시간을 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


 
 

Total 12
번호 제   목 글쓴이 날짜 추천 비추천 조회
12 VB로 Active-X 컨트롤 만들때.. 호출한 HTML페이지에 이벤트 던… 덩벙이 12-09 0 0 3364
11 InstallFactory(인스톨팩토리)로 VB프로그램 배포하기 덩벙이 10-04 0 0 4758
10 웹에서 Vb로 만든 ActiveX 컨트롤 사용 덩벙이 03-08 0 0 4659
9 VB ActiveX 컨트롤을 이용한 파일 복사 및 로컬 컴퓨터 내 실행 … 덩벙이 03-08 0 0 6318
8 VB로 웹 PARAM값 넘기기 덩벙이 01-20 0 0 8351
7 진행바 표시 만들기 덩벙이 01-20 0 0 5882
6 웹사이트 소스를 가져와 필요한 부분만 얻어봅시다(Inet). 덩벙이 01-20 0 0 6262
5 ProgressBar컨트롤 덩벙이 01-20 0 0 5893
4 Winsock을 이용한 다중 채팅 예제입니다 (2) 덩벙이 12-16 0 0 5968
3 html 내용 분석 방법... 덩벙이 09-21 0 0 4108
2    html 내용 분석 방법... 덩벙이 09-21 0 0 4036
1 delfi에서 dll 만든 후 vb에서 호출하는 예제 덩벙이 08-08 0 0 3668
 
개인홈페이지 덤벙닷컴은 프로그래머와 디자이너위한 IT커뮤니티 공간입니다.
Copyright ⓒ www.dumbung.com. All rights reserved.