Const BufferSize As Long=32000 'Esempio di buffer
Dim lFileSize As Long Dim iFileIN As Integer Dim iFileOUT As Integer Dim chBuffer(1 To BufferSize) As Byte Dim lLastBuffer As Long Dim chLastBuffer() As Byte 'Apre il file di input iFileIN = FreeFile Open "INFile.TXT" For Binary Access Read _ Lock Read Write As #iFileIN 'Crea il nuovo file prima di scriverlo iFileOUT = FreeFile Open "OutFile.TXT" For Output Access Write _ Lock Read Write As #iFileOUT Close #iFileOUT iFileOUT = FreeFile Open "OutFile.TXT" For Binary Access Write _ Lock Read Write As #iFileOUT 'Progressbar Progressbar.Min = 0 Progressbar.Max = 100 ProgressBar.Value = 0 ProgressBar.Visible=True 'Ciclo di lettura/scrittura lFileSize = LOF(iFileIN) Do Until EOF(iFileIN) lLastBuffer = lFileSize - Seek(iFileIN) + 1 If lLastBuffer < BufferSize Then ReDim chLastBuffer(1 To lLastBuffer) 'Leggo buffersize byte alla volta Get #iFileIN, , chLastBuffer 'E li riscrivo Put #iFileOUT,, chLastBuffer Else 'Leggo buffersize byte alla volta Get #iFileIN, , chBuffer 'E li riscrivo Put #iFileOUT,, chBuffer End If 'Avanza la progressbar If Progressbar.Value < 100 Then ProgressBar.Value = INT(ProgressBar.Value + (100 / Seek(iFileIN))) End If Loop Close #iFileIN, #iFileOUT ProgressBar.Visible=False |