Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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?


[www.webmatsoltuion.com] - [www.gratiscalcio.com]

Guadagna ricariche/soldi e gioca la schedina di calcio, tutto GRATIS.
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


che le risposte ti siano servite o meno un tuo riscontro è segno di cortesia.

http://www.alfonsonatale.altervista.org/
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


[www.webmatsoltuion.com] - [www.gratiscalcio.com]

Guadagna ricariche/soldi e gioca la schedina di calcio, tutto GRATIS.
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()



che le risposte ti siano servite o meno un tuo riscontro è segno di cortesia.

http://www.alfonsonatale.altervista.org/
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?


[www.webmatsoltuion.com] - [www.gratiscalcio.com]

Guadagna ricariche/soldi e gioca la schedina di calcio, tutto GRATIS.
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.


che le risposte ti siano servite o meno un tuo riscontro è segno di cortesia.

http://www.alfonsonatale.altervista.org/
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


[www.webmatsoltuion.com] - [www.gratiscalcio.com]

Guadagna ricariche/soldi e gioca la schedina di calcio, tutto GRATIS.
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



che le risposte ti siano servite o meno un tuo riscontro è segno di cortesia.

http://www.alfonsonatale.altervista.org/
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?


[www.webmatsoltuion.com] - [www.gratiscalcio.com]

Guadagna ricariche/soldi e gioca la schedina di calcio, tutto GRATIS.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo