In base a tutto quello che ti ho detto, avrai scritto del codice nuovo. Se lo mostri facciamo qualche passo avanti.Uffa
In base a tutto quello che ti ho detto, avrai scritto del codice nuovo. Se lo mostri facciamo qualche passo avanti.Uffa
No MP tecnici (non rispondo nemmeno!), usa il forum.
Al momento sono messa in questo modo:
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If SaveFileDialog1.ShowDialog = DialogResult.OK Then
Using writer As BinaryWriter = New BinaryWriter(File.Open(SaveFileDialog1.FileName, FileMode.Create))
Dim pos As Integer = 1
Dim length As Integer = RichTextBox1.Text.Length
While pos < length
Dim array() As Int16 = {Val("&H" & Mid(RichTextBox1.Text, pos, 2))}
For Each value As Byte In array
writer.Write(value)
pos += 3
Next
End While
End Using
End If
Supponendo di dover salvare solo 2 byte ovvero "01 02", a seconda come già detto se dichiaro Int16 o Int32, mi esce così:
Int16 ==> 0000000h: 01 00 02 00
Int32 ==> 0000000h: 01 00 00 00 02 00 00 00
Se dichiaro l'array come bytes, che appunto dovrebbe essere 8bit, mi dovrei aspettare:
bytes ==> 0000000h: 01 02
invece escono solo caratteri strani.
Rinuncio perchè son 2 giorni che provo di tutto
11 00 00 00
Vedo che non hai seguito i consigli che ti ho dato ... comunque ...
1) non ti serve l'array
2) pos parte da 0
3) il passo del ciclo è 2 e il controllo è <=
4) la conversione si fa con la Convert
All'interno della Using, bastano queste righe ...
codice:Dim pos As Integer = 0 Dim length As Integer = RichTextBox1.Text.Length While pos <= length writer.Write(Convert.ToByte(RichTextBox1.Text.Substring(pos, 2), 16)) pos += 2 End While
No MP tecnici (non rispondo nemmeno!), usa il forum.
Mettendo il tuo codice quando vado a salvare il file mi restituisce questo errore:
Index e length devono fare riferimento a una posizione nella stringa.
Utilizza
<
e non <=
Ma avresti potuto farla tu una piccola prova, no ?
No MP tecnici (non rispondo nemmeno!), usa il forum.
ok ora non mi da errori ma se apro il file con un hex editor mi fa vedere solo caratteri strani e non il codice esadecimale
Ultima modifica di Celeste'; 23-01-2015 a 12:41
edit.. avevi già risolto quel passaggio.. Come non detto.
Ultima modifica di renygade; 23-01-2015 a 12:53
Non c'è alcun bisogno di utilizzare una seconda richtextbox. A parte il fatto che avresti potuto usare una semplice stringa, potresti fare a meno anche di quella e usare direttamente l'elemento Lines(index) nel ciclo.
Per capirci, mostra adesso tutto il codice attuale che hai scritto in modo da capire cosa modificare.
No MP tecnici (non rispondo nemmeno!), usa il forum.
Questo è quello che ho scritto riguardo il pulsante esporta dump
Private Sub esportadump(sender As Object, e As EventArgs) Handles Button3.Click
If SaveFileDialog1.ShowDialog = DialogResult.OK Then
Using writer As BinaryWriter = New BinaryWriter(File.Open(SaveFileDialog1.FileName, FileMode.Create))
'Dichiaro le variabili index e lunghlinee
Dim index As Integer = 0
Dim lunghlinee As Integer = RichTextBox1.Lines.Length
'creo un ciclo in modo che tutte le linee della richtexbox 1 vengano messe consecutive nella richtextbox2 per poi essere salvate; diciamo che qui avrei dovuto mettere il tutto in un array, invece che nella richtexbox2 ma ancora non so come si fa
While index < lunghlinee
RichTextBox2.Text = RichTextBox2.Text & (RichTextBox1.Lines(index))
index += 1
End While
Dim pos As Integer = 0
Dim length As Integer = RichTextBox2.Text.Length
While pos < length
writer.Write(Convert.ToByte(RichTextBox2.Text.Subs tring(pos, 2), 16))
pos += 3
End While
Lascia perdere il secondo RichTextBox e lavora sulle linee del primo
codice:Using writer As BinaryWriter=New BinaryWriter(File.Open(SaveFileDialog1.FileName,FileMode.Create)) Dim line As Integer For line = 0 To RichTextBox1.Lines.Count - 1 Dim lunghlinea As Integer = RichTextBox1.Lines(line).Length Dim pos As Integer = 0 While pos < lunghlinea writer.Write(Convert.ToByte(RichTextBox1.Lines(line).Substring(pos, 2), 16)) pos += 3 End While Next End Using
No MP tecnici (non rispondo nemmeno!), usa il forum.