Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30

    [VB] Salvare file in binario

    Ciao tutti,
    essendo il primo messaggio voglio dare il mio buongiorno a tutti.
    Ne approfitto anche per chiedere un aiutino sulla compilazione in vb di un piccolo progetto che sto sviluppando.

    Sono riuscita ad importare in una textbox del codice binario che poi riesco a visualizzare correttamente in esadecimale. Una volta apportate le modiche avevo necessità di salvare il contenuto della textbox con saveFileDialog nuovamente in binario ma non sono riuscita a trovare la funzione giusta, molto probabilmente perchè ancora mi manca qualche base. C'è qualcuno che mi può aiutare

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Come hai letto i dati nella textbox e l'hai convertiti in esadecimale?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Ho importato il file in questo modo:
    codice:
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
           
            RichTextBox1.Clear()
     
            Dim resultOpenFile As DialogResult = OpenFileDialog1.ShowDialog()
         
            If resultOpenFile = DialogResult.OK Then
                Using reader As New BinaryReader(File.Open(OpenFileDialog1.FileName, FileMode.Open))
                    
                    Dim pos As String = 0
                    Dim length As Integer = reader.BaseStream.Length
                    While pos < 320
                        ' Read the integer.
                        For i = 0 To 15
                            Dim value As String = reader.ReadByte
                            ' Write to screen.
                            Console.WriteLine(value)
                            pos += 1
     
                            RichTextBox1.Text = RichTextBox1.Text & Hex(value)
    Ultima modifica di MItaly; 21-01-2015 a 10:42 Motivo: Tag CODE

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Bene .... come hai usato un BinaryReader per leggere, in modo simile userai un BinaryWriter per scrivere i tuoi dati ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Se fossi capace di scrivere la funzione...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scusa, ma dicevi

    "sono riuscita a ..."

    e quindi devo presupporre che hai scritto tu la parte che legge. Non è così ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Nel senso che sono bloccata qua:

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

    If SaveFileDialog1.ShowDialog = DialogResult.OK Then
    Using writer As BinaryWriter = New BinaryWriter(File.Open(SaveFileDialog1.FileName, FileMode.Create))

    Dim array() As Byte= {11, 22, ......} ' così mi funziona ma se dovessi scrivere per leggere i dati invece dalla RichTextBox1
    Dim array() As Byte = {RichTextBox1.Text} mi restituisce un errore

    For Each value As Int32 In Array


    writer.Write(value)
    Ultima modifica di Celeste'; 21-01-2015 a 14:24

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Suggerimento ... :

    parti dalla stringa in RichTextBox1.Text, prendi 2 caratteri alla volta e convertili da esadecimale in decimale e aggiungi il valore nell'array. Continua con i prossimi due caratteri della stringa e alla fine avrai i dati nell'array che potrai salvare.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Preciso che sono alle prime armi quindi qualche esempio non mi dispiacerebbe. Comunque ho optato per questa soluzione:

    Dim pos As Integer = 1
    Dim length As Integer = RichTextBox1.Text.Length

    While pos < length

    Dim value As Int16 = Mid(RichTextBox1.Text, pos, 2)

    writer.Write(value)
    pos += 3
    End While


    Quindi se nella mia textbox ho il seguente valore: 01 02 03 04
    quando lo salvo e poi lo apro con un hex editor mi esce giustamente : 0000000h: 01 00 02 00 03 00 04 00
    Ho provato quindi a dichiarare la value come Byte, in quanto mi serve sia rappresentato come se fosse un 8bit, però purtroppo non funziona. Come posso dichiarare quindi

    Dim value As "XXXXX" = Mid(RichTextBox1.Text, pos, 2) a 8 bit?
    Ultima modifica di Celeste'; 21-01-2015 a 23:02

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Devi tenere presente che i due caratteri sono in esadecimale nel testo. Puoi scrivere

    Dim b As Byte = Convert.ToByte(RichTextBox1.Text.Substring(pos, 2), 16)

    per ottenere questa conversione dall'esadecimale al valore decimale byte.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.