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 - streamReader cambia il testo
Forum - C# / VB.NET - streamReader cambia il testo

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Vicar (Normal User)
Pro


Messaggi: 96
Iscritto: 25/02/2010

Segnala al moderatore
Postato alle 10:41
Sabato, 03/07/2010
Salve,

io ho un file .eml, lo apro tramite streamReader ma poi il contenuto diventa criptato, lo stesso fa se lo apro con il blocco note.. come faccio a far si che quando lo apro ci sia il messaggio normale?

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 11:17
Sabato, 03/07/2010
Se lo vedi tutto incomprensibile, facile che sia in partenza un file criptato.
Se dopo l'intestazione dell'email vedi una seconda parte composta da caratteri strani, facile che il messaggio abbia un allegato  e quello che vedi è il file binario codificato, se non vado errato, in base64

PM Quote
Avatar
Vicar (Normal User)
Pro


Messaggi: 96
Iscritto: 25/02/2010

Segnala al moderatore
Postato alle 12:30
Sabato, 03/07/2010
Si è un base64, devo usare la libreria system.convert?

EDIT:
Non capisco l'uso dei byte nel metodo

system.convert.FromBase64toString(Array Byte)
Perchè?

Ultima modifica effettuata da Vicar il 03/07/2010 alle 12:56
PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 17:15
Sabato, 03/07/2010
Io uso questa routine dove forse è più facile capire l'uso dei byte.
Codice sorgente - presumibilmente VB.NET

  1. Dim bt64 As Byte() = System.Convert.FromBase64String(StringaCodificata)
  2.  
  3. Dim sw As New IO.FileStream(NomeFileDecodificato, IO.FileMode.Create)
  4.  
  5. sw.Write(bt64, 0, bt64.Length)
  6. sw.Close()


PM Quote
Avatar
Vicar (Normal User)
Pro


Messaggi: 96
Iscritto: 25/02/2010

Segnala al moderatore
Postato alle 19:47
Sabato, 03/07/2010
Ma non posso mettere tramite un for each i byte in una stringa?

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 19:53
Sabato, 03/07/2010
Non ti capisco.
I byte del file sono stati codificati proprio per metterli in una stringa. Quando li decodifichi l'unica è rimettterli in un file.

PM Quote
Avatar
Vicar (Normal User)
Pro


Messaggi: 96
Iscritto: 25/02/2010

Segnala al moderatore
Postato alle 0:08
Domenica, 04/07/2010
Allora,

Codice sorgente - presumibilmente VB.NET

  1. Dim bt64 As Byte() = System.Convert.FromBase64String(StringaCodificata)
  2.  
  3. Dim sw As New IO.FileStream(NomeFileDecodificato, IO.FileMode.Create)
  4.  
  5. sw.Write(bt64, 0, bt64.Length)
  6. sw.Close()


Facendo cosi metti tutto il bite nel file..
Io invece prelevo il contenuto del file codificato in base 64, dopodichè devo decodificarlo e mettere la decodifica in una stringa, però quello che non capisco è:
Dopo la decodifica io ho i byte non una string..come faccio?

Ultima modifica effettuata da Vicar il 04/07/2010 alle 0:27
PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 10:34
Domenica, 04/07/2010
Continuo a non capire qual'è il tuo problema.
Quì è indicato a cosa serve la decodifica:
http://msdn.microsoft.com/en-us/library/system.convert.fro ...

Comunque tu decodifichi il contenuto del file codificato in base 64 con l'istruzione:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim bt64 As Byte() = System.Convert.FromBase64String(StringaCodificata)


così hai un array di numeri che variano da 0 a 255
Ora, scorrendo l'array bt64, se vuoi una stringa composta dai numeri usa la prima riga, se vuoi una stringa di caratteri ascii usa la seconda.
Codice sorgente - presumibilmente VB.NET

  1. For i As Int32 = 0 To bt64.Length - 1
  2.    TuaStringa &= Str(bt64(i))
  3.    TuaStringa &= Chr(bt64(i))
  4. Next


PM Quote
Avatar
Vicar (Normal User)
Pro


Messaggi: 96
Iscritto: 25/02/2010

Segnala al moderatore
Postato alle 11:37
Domenica, 04/07/2010
Codice sorgente - presumibilmente Plain Text

  1. TuaStringa &= Chr(bt64(i))



Con questo ho una stringa contenente il testo decodificato?

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo