Salve a tutti. Sto cercando di modificare un file data binary (o almeno è ciò che penso sia), questo qui per la precisione: http://www.mediafire.com/?da0ad07pzfogdl0 (uso notepadd++ per aprirlo)
Ciò che vorrei fare è modificare le parti testuali all'interno, per esempio: http://img403.imageshack.us/img403/8017/94022290.jpg
Vorrei modificare "CustAssetSeen-803981731[NUL][STX][NUL][NUL][NUL]1" in "CustAssetSeen-803981731[NUL][STX][NUL][NUL][NUL]0"
Utilizzando i FileStream sono riuscito sia a farlo leggere che a scrivere dal mio programma, ma ho ancora un problema. Questo file che sto cercando di modificare è un file di configurazione di un'altra applicazione. Il mio programma riesce a leggerlo senza problemi sia prima che dopo che applico le modifiche, purtroppo l'applicazione "originale" che ha creato il file non lo riconosce dopo che applico le modifiche e lo sovrascrive con un nuovo file.
In poche parole, il programma legge e scrive il file, ma non in modo tale da fallo riconoscere dall'applicazione originale.
Comunque posto qui il codice che uso per leggere e scrive il file (NOTA: è molto "rozzo", poco ottimizzato insomma)
codice:Dim nul As Char = ChrW(0) Dim stx As Char = ChrW(2) Dim ht As Char = ChrW(9) Dim lf As Char = ChrW(10) Dim vt As Char = ChrW(11) Dim ff As Char = ChrW(12) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim fileStream As New IO.FileStream("C:\test", IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.None) Dim myFileReader As New System.IO.StreamReader(fileStream) Dim text As String = myFileReader.ReadToEnd myFileReader.Close() fileStream.Close() If text.Contains("CustAssetSeen-803981731" & nul & vt & nul & nul & nul & "1") = True Then Me.ComboBox1.SelectedIndex = 0 ElseIf text.Contains("CustAssetSeen-803981731" & nul & vt & nul & nul & nul & "0") = True Then Me.ComboBox1.SelectedIndex = 1 End If End SubQualche suggerimento?codice:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim fileStream1 As New IO.FileStream("C:\test", IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.None) Dim myFileReader As New System.IO.StreamReader(fileStream1) Dim text As String = myFileReader.ReadToEnd myFileReader.Close() fileStream1.Close() If Me.ComboBox1.SelectedIndex = 0 Then If text.Contains("CustAssetSeen-803981731" & nul & vt & nul & nul & nul & "0") = True Then text = text.Replace("CustAssetSeen-803981731" & nul & vt & nul & nul & nul & "0", "CustAssetSeen-803981731" & nul & vt & nul & nul & nul & "1") MsgBox("Done") End If End If Dim fileStream2 As New IO.FileStream("C:\test", IO.FileMode.Create, IO.FileAccess.Write, IO.FileShare.None) Dim myFileWriter As New System.IO.StreamWriter(fileStream2) myFileWriter.Write(text) myFileWriter.Close() fileStream2.Close() MsgBox("Done") End Sub
Grazie per l'attenzione![]()

Rispondi quotando