Unire due File e manipolarli – Codice VB.NET

Una funzione per unire due file (merge file) ed eventualmente manipolarli, tramite codice VB.NET

Unire due file, nudi e crudi, è in realtà un’operazione abbastanza semplice e risolvibile in pochi passaggi logici e in vari modi. Per esempio si potrebbe usare la modalità “Append” nella scrittura del file. La funzione pensata per occuparsi dell’unione di due file esistenti e che viene ivi proposta è la seguente: IngAC_FILE_MERGE(ByVal File_Origine As String, ByVal File_Destinazione As String) As Boolean. Qui di seguito il codice in linguaggio VB.NET della funzione che rappresenta ovviamente solo una delle tante possibili soluzioni al problema di Unire due File, con possibilità di intervenire sui singoli byte.

Imports System.IO

Public Function IngAC_FILE_MERGE(ByVal File_Origine As String, ByVal File_Destinazione As String) As Boolean
 ' Inizialmente restituisce True (tutto ok)
 IngAC_FILE_MERGE= True 
 ' FILE ORIGINE VIENE UNITO IN CODA AL FILE DESTINAZIONE
 Dim D_O As Long = 0
 Dim D_D As Long = 0
 ' APRO FILE SORGENTE E LO CARICO IN ARRAY fileDataO
 Try
 Dim oFile As FileInfo
 oFile = New FileInfo(File_Origine)
 D_O = oFile.Length
 Dim oFileStream As FileStream = oFile.OpenRead
 Dim lBytesS As Long = oFileStream.Length
 Dim fileDataO(lBytesS - 1) As Byte
 oFileStream.Read(fileDataO, 0, lBytesS)
 oFileStream.Close()
 ' APRO FILE DESTINAZIONE E LO CARICO IN ARRAY fileDataD
 oFile = New FileInfo(File_Destinazione)
 D_D = oFile.Length
 oFileStream = oFile.OpenRead
 Dim lBytesD As Long = oFileStream.Length
 Dim fileDataD(lBytesD - 1) As Byte
 oFileStream.Read(fileDataD, 0, lBytesD)
 oFileStream.Close()
 ' QUI POTREI MANIPOLARE I DUE ARRAY BYTE PER BYTE
 ' 
 ' UNISCO I DUE ARRAY NEL FILE DESTINAZIONE
 oFile = New FileInfo(File_Destinazione)
 oFileStream = oFile.OpenWrite
 oFileStream.Write(fileDataD, 0, lBytesD) ' Scrive array fileDataD
 oFileStream.Write(fileDataO, 0, lBytesS) ' Scrive array fileDataO
 oFileStream.Close()
 Catch ex as Exception
 MsgBox(ex.Message)
 ' In caso di errore restituisce False
 IngAC_FILE_MERGE= False
 End Try
 End Function

Input e output della funzione per Unire due File

La funzione ha, attualmente due parametri di input:

  • File_Origine As String, che rappresenta il file di origine che si vuole accodare il file di destinazione, e
  • File_Destinazione As String, che ovviamente è il file di destinazione cui viene accodato il file di origine.

La funzione, in output, restituisce un boleano: true se l’operazione è riuscita, false altrimenti.

Descrizione della funzione e note

La funzione semplicemente si occupa di aprire i due file, leggerli caricandoli in due array di Byte: fileDataO e fileDataD. In questo modo si potrebbe anche gestire il contenuto dei singoli Byte e manipolarli, contarli, invertirli etc. Chiudo i due file. A questo punto, posso riaprire il file di destinazione, sovrascrivendolo con il contenuto origine + destinazione. Infine, ricordate di inserire Imports System.IO per poter usare la funzione.

Link utili:

You may also like...