Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - c# scrivere valori esadecimali in un file
Forum - C# / VB.NET - c# scrivere valori esadecimali in un file

Avatar
-MG- (Normal User)
Rookie


Messaggi: 37
Iscritto: 23/04/2011

Segnala al moderatore
Postato alle 19:17
Lunedì, 30/05/2011
Questo topic è stato chiuso dal moderatore

Salve,sono sempre io,avrete visto che sto facendo un sacco di domande sul codice esadecimale,ma vi assicuro che non sto facendo un editor, vengo al punto che finalmente potrebbe togliermi fuori dalla situazione così non vi darò più fastidio. In una textbox ho un codice simile a questo(con tutti gli spazi e le tabulature ecc..):63 69 61 6F 2C 63 6F 6D 65 20 76 61 3F 54 75 74 74 6F 20 62 65 6E 65 20 67 72 61 7A 69 65 2E.Come faccio a scriverlo in un file premendo un pulsante?Vorrei che aprendolo con un editor hex nella tabella ascii venga: Ciao come stai?tutto bene (che è il corrispondente ascii del codice che ho scritto sopra) e nella tabella hex venga il codice che ho scritto sopra,quindi come faccio a scrivere questo codice esadecimale in un file?Grazie mille!Ps: finora ho riscontrato risposte tipo che mi dicevano di usare un file stream,ma forse non mi ero spiegato bene, non voglio scrivere del testo o dei numeri su quel file tramite esadecimale,voglio proprio scrivere quel codice nel file, il corrispondente testo o numero (ascii) non mi interessa,mi potete aiutare?:(

PM
Avatar
Phil93 (Normal User)
Pro


Messaggi: 85
Iscritto: 26/01/2011

Up
2
Down
V
Segnala al moderatore
Postato alle 21:11
Lunedì, 30/05/2011
Intendi scrivere l'hex in formato binario?

Edit: Basta che converti le stringhe esadecimali in una matrice di byte e la salvi col metodo IO.File.WriteAllBytes

Edit2:
Codice sorgente - presumibilmente C#

  1. string hex = "63 69 61 6F 2C 63 6F 6D 65 20 76 61 3F 54 75 74 74 6F 20 62 65 6E 65 20 67 72 61 7A 69 65 2E";  // La tua stringa contenente i valori esadecimali
  2. string[] hexArray = Strings.Split(hex, " ");    // Splitta la stringa
  3. byte[] Bytes = new byte[hexArray.Length];   // La matrice di byte che verrà scritta nel file
  4.  
  5. for (int32 I = 0; I <= hexArray.Length - 1; I++) {
  6.         Bytes[I] = Convert.ToByte(hexArray[I], 16);    // Converte ogni singolo esadecimale in un valore di tipo byte e lo mette nella matrice di byte
  7. }
  8. System.IO.File.WriteAllBytes("C:\Users\...", Bytes);     // Scrive il file



Al posto di "C:\Users\..." metti il percorso del file.

Ultima modifica effettuata da Phil93 il 31/05/2011 alle 19:07
sì,tu puoi aiutarmi? - -MG- - 30/05/11 21:49
grazie! adesso ci provo. - -MG- - 31/05/11 07:54
Scusami potresti farmi un esempio non capisco bene? - -MG- - 31/05/11 17:48
Grazie!!!!!!!!!string[] hexArray = Strings.Split(hex, " ")non funziona,ma lo aggiusto io per il resto è tutto a posto,grazie!!!! - -MG- - 31/05/11 21:13
Si scusa, per praticità ho scritto il codice in VB e lo ho convertito in C#. L'importante + che tu abbia capito l'algoritmo. - Phil93 - 31/05/11 21:42
PM