기타 [vb.net] Byte 데이터 을 일정한 크기로 자르는 함수
페이지 정보
본문
사용할 일이 있을지 모르겠지만 아이템이 신선해서 퍼 왔습니다.
함수선언
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) |작성자 스피드웨건
- 이전글[VB.NET] Winhttp 로그인(bvsd 암호화 아님) 20.02.24
- 다음글[VB.NET] DataGridView 컨트롤에서 행 끌어서 이동 20.02.23
댓글목록
등록된 댓글이 없습니다.