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 - [VB.NET 2013] copia dati da un datagridview ed incollo su mail outlook
Forum - C# / VB.NET - [VB.NET 2013] copia dati da un datagridview ed incollo su mail outlook - Pagina 3

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
robypiro (Normal User)
Newbie


Messaggi: 11
Iscritto: 09/02/2016

Segnala al moderatore
Postato alle 14:39
Venerdì, 19/02/2016
ho notato una cosa stranissima, modificando il tuo codice in questo modo:

Codice sorgente - presumibilmente VB.NET

  1. 'inizializzo la stringa da mettere nella clipboard con l'header, per ora senza settare gli indici. Al loro posto metto degli zeri, in modo da fissare una lunghezza per la stringa
  2.             Dim a As String = "Version:0.9" + vbCrLf + "StartHTML:000000" + vbCrLf + "EndHTML:000000" + vbCrLf + "StartFragment:000000" + vbCrLf + "EndFragment:000000" + vbCrLf
  3.             'ora aggiungiamo alla stringa da copiare l'html necessario.
  4.             'ottengo la dimensione della stringa convertendo la stringa in un array di byte con la codifica UTF8 e leggendone la dimensione
  5.             Dim headerSize As Integer = System.Text.Encoding.UTF8.GetBytes(a).Length
  6.             a += tabella
  7.             'ottengo la dimensione della stringa convertendo la stringa in un array di byte con la codifica UTF8 e leggendone la dimensione
  8.             Dim totalSize As Integer = System.Text.Encoding.UTF8.GetBytes(a).Length
  9.             'l'HTML inizia appena dopo l'header e finisce alla fine della clipboard,
  10.             'quindi abbiamo l'indice di inizio in headerSize e quello di fine in totalSize.
  11.             'A questo punto posso sostituire gli zeri con i valori trovati, facendo attenzione che questi siano di esattamente 6 cifre come i 6 zeri
  12.             '(utilizzando padLeft sulla stringa la porto ad dimensione di 6 caratteri aggiungendo zeri a sinistra)
  13.             Dim inizio As String = headerSize.ToString().PadLeft(6, "0")
  14.             Dim fine As String = totalSize.ToString().PadLeft(6, "0")
  15.             'la prima occorrenza degli zeri (per StartHTML) la sostituisco con l'indice di inizio
  16.             a = replaceFirst(a, "0000000", inizio)
  17.             'la seconda (EndHTML) con l'indice di fine
  18.             a = replaceFirst(a, "0000000", fine)
  19.             'stessa cosa per StartFragment e EndFragment
  20.             a = replaceFirst(a, "0000000", inizio)
  21.             a = replaceFirst(a, "0000000", fine)
  22.             Clipboard.SetText(a, TextDataFormat.Html)



Il copia incolla funziona anche se, prima di copiarmi la tabella, mi copia anche l'header. In pratica, ho modificato i replaceFirst mettendo uno zero in più rispetto a quelli che dovrebbero essere. E' stata una modifica abbastanza casuale che però risolve il problema, ma perchè????

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo