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:
- Classe FileStream (MSDN)
- Il tipo di dato Byte (MSDN)
- Come aprire un file in VB.NET