자료실

부자는 돈을 써서 시간을 아끼지만 가난한 사람은 시간을 써서 돈을 아낀다

vb.net

IT HUB를 찾아주셔서 감사합니다.

기타 [vb.net] Byte 데이터 을 일정한 크기로 자르는 함수

페이지 정보

profile_image
작성자 하나를하더라도최선을
댓글 0건 조회 12,196회 작성일 20-02-24 12:03

본문

사용할 일이 있을지 모르겠지만 아이템이 신선해서 퍼 왔습니다.


함수선언
 
    Public Function SplitByte(ByVal B() As Byte, ByVal Size As UInt64) As Byte()()
 
        Dim i As UInt64
        Dim DataSize As UInt64 = UBound(B)
 
        If (DataSize + 1) Mod Size = 0 Then
            Dim ReturnByte(Int(((DataSize + 1/ Size) - 1))() As Byte
 
            For i = 0 To DataSize
                ReDim Preserve ReturnByte(Int(i / Size))(Size - 1)
                ReturnByte(Int(i / Size))(i Mod Size) = B(i)
            Next
            Return ReturnByte
        Else
            Dim ReturnByte(Int((DataSize / Size)))() As Byte
            For i = 0 To DataSize
                If i = DataSize Then
                    ReDim Preserve ReturnByte(Int(i / Size))(((DataSize + 1) Mod Size) - 1)
 
                    ReturnByte(Int(i / Size))(i Mod Size) = B(i)
                Else
                    ReDim Preserve ReturnByte(Int(i / Size))(Size - 1)
                    ReturnByte(Int(i / Size))(i Mod Size) = B(i)
                End If
            Next
            Return ReturnByte
        End If
 
    End Function
 
 
 
사용법(SplitByte 함수를 이용한 파일 복사하기 예제)
 
Dim File() As Byte   '파일데이터를 저장할 변수
Dim File2()() As Byte    'SplitByte 함수의 결과를 받아올 변수
File = My.Computer.FileSystem.ReadAllBytes("C:\Users\USER\Desktop\테스트.zip")    '데이터를 받아온다
File2 = SplitByte(File, 10000)     'File 의 데이터를 10000바이트 단위로 잘라서 File2 에 넣는다
 
        Dim i As Integer
        For i = 0 To File2.GetUpperBound(0)    
            My.Computer.FileSystem.WriteAllBytes("C:\Users\USER\Desktop\테스트 복사본.zip", File2(i), True)   '
        Next
 
 
 
부가설명:
 
예로들어 File() = 120305 Byte 라고 하고
 
File2 = SplitByte(File, 5000) 을하면
 
File2(0)() = > 5000 Byte
 
File2(1)() = > 5000 Byte
 
File2(2)() =>  2305 Byte
 
 
 
가 됩니다
 
 
 
활용방안: 파일 암호화 프로그램이나 파일 전송 프로그램에 유용하게 쓸수있는 함수입니다
 
 
 
(버그 수정됨 ,날짜:2017-05-32,Byte의 크기 Mod 나눌Byte 값 이 0일때 오류가 발생하는 것을 수정 하였습니다.)
 
(처리 속도 최적화됨 ,날짜:2017-05-32)
[출처] Byte 데이터 을 일정한 크기로 자르는 함수 SplitByte(자작함수) (고구마S) |작성자 스피드웨건
 
 
 

댓글목록

등록된 댓글이 없습니다.