Написал простую программку, для кодирования файла методом Хаффмана, программка работает быстро, но хотелось бы видеть как происходит процесс. Для этого я использовал ProgressBar, но после этого все стало тормозить в несколько раз. Мне кажется у меня сначала выполняется progressBar, а потом только кодирование, а по другому не работает, посоветуйте? И еще, насколько я понимаю с Input, происходит обращение и обновление к каждому байту, как сделать, чтобы обновлялся к примеру через каждые 100Кб?
Dim Filenr As Integer
Dim oldtimer As Single
Dim ByteArray() As Byte
Dim Huffman As New clsHuffman
Dim a As String
CommonDialog1.Filename = ""
CommonDialog1.Filter = "(*.*)|*.*|"
CommonDialog1.ShowOpen
If CommonDialog1.Filename <> "" Then
Text2.Text = CommonDialog1.Filename
Debug.Print CommonDialog1.Filename
Open CommonDialog1.Filename For Binary As 1
ProgressBar1.Min = 1
ProgressBar1.Max = LOF(1)
Text1.Text = CommonDialog1.FileTitle
Do While Not Loc(1) = LOF(1)
a = Input$(100, #1)
ProgressBar1.Value = Loc(1)
Loop
Close
Else
Exit Sub
End If
Filenr = FreeFile
Open Text2.Text For Binary As #Filenr
ReDim ByteArray(LOF(Filenr))
Label1.Caption = UBound(ByteArray)
Get #Filenr, , ByteArray()
Close #Filenr
Call Huffman.EncodeByte(ByteArray(), UBound(ByteArray) + 1)
Filenr = FreeFile
Open Text2.Text & ".rbk" For Binary As #Filenr
Put #Filenr, , ByteArray()
Close #Filenr
MsgBox "Типа работает"
End Sub
И еще один косяк, я форматирую код по блокам, чтобы его удобно было читать, но в просмотре и когда уже отправляю, он выравнивается по левой строке, прошу извинить, и объяснить, как сделать чтобы он не выравнивался.