Я должен помочь исправить прилагаемую код VB6, который предполагается взять звуковой файл и разделить его на 5 равных частей.
Это путь этот код должен работать:
Первая часть начинается с начала Track.wav файла. Вторая часть начинается с первой, где отделенная часть закончилась. Третья часть начинается от того, где второй отделенной части закончилась. Четвертая часть начинается где третья отделенная часть закончилась. Пятая часть начинается где четвёртая отделенная часть закончилась.
По существу, каждый из файлов частей является продолжением предыдущей части разделения файла. После раскола у меня есть 1.wav, 2.wav, 3.wav. 4.wav и 5.wav все полученные из файла Track.wav. Код прилагается уже разбивает файл на пять равные части, но проблема заключается в том, что все аудио часть такая же, как в первой части вместо продолжения.
Мне нужна помощь, чтобы получить это фиксируется на работу, как это должно быть в VB6 (не .NET). Я был бы признателен за помощь в этом.
Dim Wavlength As Integer
Private Sub Command1_Click()
On Error Resume Next
DoFirstWav
Me.SetFocus
End Sub
Private Sub DoFirstWav()
On Error Resume Next
Dim ByteData() As Byte
Dim FirstWav As Integer
FirstWav = Wavlength / 5
ByteData = ReadFile(App.Path & \Track.wav, 1, FirstWav & 0000)
Call WriteFile(App.Path & \Segments\1.wav, ByteData)
DoSecondWav
End Sub
Private Sub DoSecondWav()
On Error Resume Next
Dim ByteData() As Byte
Dim SecondWav As Integer
SecondWav = Wavlength / 5
ByteData = ReadFile(App.Path & \Track.wav, 1, SecondWav & 0000)
Call WriteFile(App.Path & \Segments\2.wav, ByteData)
DoThirdWav
End Sub
Private Sub DoThirdWav()
On Error Resume Next
Dim ByteData() As Byte
Dim ThirdWav As Integer
ThirdWav = Wavlength / 5
ByteData = ReadFile(App.Path & \Track.wav, 1, ThirdWav & 0000)
Call WriteFile(App.Path & \Segments\3.wav, ByteData)
DoFourthWav
End Sub
Private Sub DoFourthWav()
On Error Resume Next
Dim ByteData() As Byte
Dim FourthWav As Integer
FourthWav = Wavlength / 5
ByteData = ReadFile(App.Path & \Track.wav, 1, FourthWav & 0000)
Call WriteFile(App.Path & \Segments\4.wav, ByteData)
DoFifthWav
End Sub
Private Sub DoFifthWav()
On Error Resume Next
Dim ByteData() As Byte
Dim FifthWav As Integer
FifthWav = Wavlength / 5
ByteData = ReadFile(App.Path & \Track.wav, 1, FifthWav & 0000)
Call WriteFile(App.Path & \Segments\5.wav, ByteData)
MsgBox Wav Split Successfully, vbInformation
End
End Sub
Private Function ReadFile(ByVal strFileName As String, Optional ByVal lngStartPos As Long = 1, Optional ByVal lngFileSize As Long = -1) As Byte()
On Error Resume Next
Dim FilNum As Integer
FilNum = FreeFile
Open strFileName For Binary As #FilNum
If lngFileSize = -1 Then
ReDim ReadFile(LOF(FilNum) - lngStartPos)
Else
ReDim ReadFile(lngFileSize - 1)
End If
Get #FilNum, lngStartPos, ReadFile
Close #FilNum
End Function
Private Function WriteFile(ByVal strFileName As String, ByteData() As Byte, Optional ByVal lngStartPos As Long = -1, Optional ByVal OverWrite As Boolean = True)
On Error Resume Next
Dim FilNum As Integer
FilNum = FreeFile
If OverWrite = True And Dir(strFileName) <> Then
Kill strFileName
End If
Open strFileName For Binary As #FilNum
If lngStartPos = -1 Then
Put #FilNum, LOF(FilNum) + 1, ByteData
Else
Put #FilNum, l, ByteData
End If
Close #FilNum
End Function
Private Sub Form_Load()
On Error Resume Next
Dim MyInt As Integer
Dim MyByte As Byte
Dim MyStr As String * 4
Dim MyLong As Long
Dim SampleRate, BytesPerSample, FileSize As Long
Open App.Path & \Track.wav For Binary Access Read Lock Read As #1
Get #1, , MyStr: Debug.Print Riff = ; MyStr
Get #1, , MyLong: Debug.Print File size = ; MyLong
FileSize = MyLong
Get #1, , MyStr: Debug.Print Wave = ; MyStr
Get #1, , MyStr: Debug.Print Format = ; MyStr
Get #1, , MyLong: Debug.Print Any = ; MyLong
Get #1, , MyInt: Debug.Print formatTag = ; MyInt
Get #1, , MyInt: Debug.Print Channels = ; MyInt
Get #1, , MyLong: Debug.Print Samples per Sec = ; MyLong
SampleRate = MyLong
Get #1, , MyInt: Debug.Print Bytes per Sec = ; MyInt
Get #1, , MyInt: Debug.Print BlockAlign = ; MyInt
Get #1, , MyInt: Debug.Print Bytes per Sample = ; MyInt
BytesPerSample = MyInt
Close #1
Wavlength = FileSize / (SampleRate * BytesPerSample)
End Sub