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
Ciaffo Zone - Invio email
Forum - Ciaffo Zone - Invio email - Pagina 13

Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ] Precedente | Prossimo
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 22:14
Mercoledì, 25/05/2022
Testo quotato

Postato originariamente da quasar87:
Una cosa non mi è chiara, cosa vuol dire array attachment "di tipo attachment" questa parte non mi è chiara?


Le variabili e gli array possono contenere diversi tipi di dato, quelli che già conosci: numerici (int, double, float, ecc ecc), alfanumerici string, ma moltissimi altri tipi, come il tipo: Attachment (con la A maiuscola), il tipo Attachment è definito in System.Net.Mail ed è una variabile che contiene un allegato di posta elettronica.
si dichiara la variabile:
Attachment variabile;
poi si istanzia
variabile = new Attachment("e:/Foto/foto1.jpg");

ora variabile contiene un allegato di posta elettronica utilizzabile in:
mail.Attachments.Add(variabile);

I tipi permettono di evitare errori, il programmatore sa cosa deve contenere una variabile e il compilatore di C# se vengono eseguite operazioni tra due tipi diversi, lo segnala evitando disastri.
I tipi possono essere convertiti, se possibile, con apposite istruzioni.
In VB .Net tale incombenza viene presa in carico dal compilatore, le conversioni che VB .Net fa automaticamente si chiamano conversioni implicite, quando un programmatore VB .Net "evolve", può usare l'istruzione Option Strict On che dice al compilatore che le conversioni devono essere esplicite come in C#

Le variabili var e object, possono contenere di tutto, poi è il programmatore che di volta in volta estrae il tipo voluto.

Ultima modifica effettuata da Carlo il 25/05/2022 alle 22:28


in programmazione tutto è permesso
PM Quote
Avatar
quasar87 (Normal User)
Pro


Messaggi: 65
Iscritto: 03/05/2022

Segnala al moderatore
Postato alle 10:17
Giovedì, 26/05/2022
Si nel libro ci sono arrivato alle conversioni inpicite ed esplicite dei tipi di dati, ora ho capito cosa è Attachment, ma il mio problema è che evidentemente come Attachment ci sono tanti altri tipi per così dire predefiniti, quanto te ne serve uno, come lo si va  atrovare? Come si verifica se esiste? C'è la documentazione Microsoft con tutte le classi, ma non so se è così facile trovare quel che si cerca, c'è un modo particolare?
Ho fornto i dati per la configurazione del DNS in quanto il pannello dell'hosting non permette di farlo, poi si prova!

PM Quote
Avatar
quasar87 (Normal User)
Pro


Messaggi: 65
Iscritto: 03/05/2022

Segnala al moderatore
Postato alle 11:15
Giovedì, 26/05/2022
Sono riuscito ad unire le due parti del programma, il programma che esegue il compito e passa il risultato all'email che poi viene inviata, mi sembra di avere più chiaro come funziona la struttura.
Il dato che viene passato all'email viene passato con parecchie cifre dopo la virgola, e vorrei arrotondare a 2 o 3 cifre, solo che il dato è un double mentre ho visto che questo metodo decimal.Round() è appunto un decimal, quindi da un errore di conversione, ho visto che c'è anche un metodo per la conversione a decimal, anzi mi sembra che ci siano più metodi per fare le stesse cose, nel mio caso qual'è quello più adatto?

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 13:30
Giovedì, 26/05/2022
I tipi classici si imparano mentre si studia il linguaggio, quando si usa uno spazio dei nomi nuovo, nel nostro caso: System.Net.Mail

si cerca nella guida dotnet:
https://docs.microsoft.com/it-it/dotnet/api/system.net.mail ...

Quando si è letta la guida, non è perentorio ricordarsi perfettamente tutti i nomi che si sono letti, perché VisualStudio mentre scrivi ti propone un elenco di parole chiave che sono scelte in base al contesto e alle lettere digitate, dove è facile trovare quello che ti serve.

Per le proprietà è ancora più facile perché tutte le proprietà disponibili vengono elencate appena si digita il punto.

Se crei l'oggetto mail:
MailMessage mail = new MailMessage();

ogni volta che scrivi mail. al punto hai tutte le proprietà, alcune le hai già usate.
Ma non finisce qui, perché la programmazione ad oggetti fa si che dopo il primo punto ce ne possano essere altri.

Per esempio se hai scelto la proprietà Subject e poi metti il punto
mail.Subject.
vedrai che Subject ha altre proprietà, una che già conosci è Length

solo vedendola capisci che puoi sapere quanto è lungo l'oggetto che hai usato
int a = mail.Subject.Length;

potrebbe servire per avvertire l'utente che sta inviando una mail con un oggetto troppo lungo o senza oggetto se Length restituisse zero.

Ora moltiplica tutte le proprietà che vedi ed immagina l'enorme puzzle costruibile in modo logico e funzionale alle esigenze.

Per i numeri se li devi inserire nel corpo della mail (Body) li devi convertire in stringhe, nella conversione puoi scegliere come.

Codice sorgente - presumibilmente C#

  1. double DoppiaPrecisione = 12.123456789;
  2.  
  3. string convertito1 = DoppiaPrecisione.ToString("0.00");
  4. string convertito2 = DoppiaPrecisione.ToString("0.0000");
  5. string convertito3 = DoppiaPrecisione.ToString("000.0");
  6. string convertito4 = DoppiaPrecisione.ToString();



Per creare tutto il testo della mail (Body) puoi usare il segno di concatenazione + oppure il più efficiente StringBuilder
https://docs.microsoft.com/it-it/dotnet/api/system.text.str ...

Sei agli inizi, conoscere la sintassi e le istruzioni di un linguaggio è basilare, ma non farà di te un bravo programmatore, sarebbe come dire, conosco tutte le paraole e le regole della ligua Italiana ora sono in grado di scrivere un romanzo di successo.


Ultima modifica effettuata da Carlo il 26/05/2022 alle 13:38


in programmazione tutto è permesso
PM Quote
Avatar
quasar87 (Normal User)
Pro


Messaggi: 65
Iscritto: 03/05/2022

Segnala al moderatore
Postato alle 14:25
Giovedì, 26/05/2022
Si infatti il problema è che questo "ambiente" è come un enorme supermercato, ci sono sugli scaffali tantissimi metodi per fare un sacco di cose, poi una volta fatta la spesa bisogna capire come assemblare gli ingredienti, però sono riuscito ad unire le due parti di codice, quella del programma e quella del codice per l'invio di email, e questo mi ha chiarito un po' la questione della struttura.
Nel mio caso, il valore che devo approssimare a 2 cifre, è il risultato dell'esecuzione del programma che deve essere passato alla email.
Per creare il testo dell'email ho utilizzato "+ +" e per gli spazi \r\n
Il valore che devo passare alla email è contenuto in una variabile, ed è di tipo double.
Invece di:
double DoppiaPrecisione = 12.123456789;

posso fare:
string convertito1 = nomedellavariabile.ToString("0.00");

dove nomedellavariabile contiene il valore restituito dal programma?

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 22:14
Giovedì, 26/05/2022
Testo quotato

Postato originariamente da quasar87:
Invece di:
double DoppiaPrecisione = 12.123456789;

posso fare:
string convertito1 = nomedellavariabile.ToString("0.00");

dove nomedellavariabile contiene il valore restituito dal programma?



il nome della variabile lo scegli tu, se hai dichiarato: nomedellavariabile, lo usi.
il risultato della conversione finirà in convertito1 che poi userai per la stringa.

per concatenare una stringa in un testo da più righe puoi fare così:

Codice sorgente - presumibilmente C#

  1. string riga1 = "La varaibile numerica1 contiene: ";
  2. string riga2 = "La variabile numerica2 contiene: ";
  3. double numero1 = 9.123456789;
  4. double numero2 = 879.3;
  5.  
  6. string risultato = riga1 + numero1.ToString("0.00") + Environment.NewLine + riga2 + numero2.ToString("0.00");
  7.  
  8. Console.WriteLine(risultato);



Environment.NewLine e \r\n sono equivalenti e servono per andare accapo, non per gli spazi :rotfl:

Ultima modifica effettuata da Carlo il 26/05/2022 alle 23:06


in programmazione tutto è permesso
PM Quote
Avatar
quasar87 (Normal User)
Pro


Messaggi: 65
Iscritto: 03/05/2022

Segnala al moderatore
Postato alle 9:09
Venerdì, 27/05/2022
Si mi sono sbagliato a scrivere, servono per andare su una nuova riga :asd: però al di la del fatto che mi sono sbagliato a scrivere la cosa bella è che avendoglieli messi, la riga viene cambiata :rofl:
Riscontro un inconvegnete, ho utilizzato:
string convertito1 = DoppiaPrecisione.ToString("0.00");
L'arrotondamento avviene ma mette tre cifre dopo la virgola, poi ho fatto qualche prova e non arrotondava più, poi ho chiuso visual studio e riprovato con ('0.00'); e sempre narrotondava a tre cifre, ora non funziona più, da cosa possono dipendere questi problemi?

PM Quote
Avatar
quasar87 (Normal User)
Pro


Messaggi: 65
Iscritto: 03/05/2022

Segnala al moderatore
Postato alle 10:45
Venerdì, 27/05/2022
E poi mi sono venute in mente un sacco di idee per aggiungere funzionalità al programma, e vedo che i metodi ci sono, troppo forte sta cosa :k:

PM Quote
Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ] Precedente | Prossimo