Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Help!!! Per chi conosce visual basic

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

Help!!! Per chi conosce visual basic

Postdi power1983 » 01/04/03 22:21

Tramite un form,da me creato, inserisco dei dati che vengono inviati al client di posta elettronica.
Questi però vengono inseriti in maniera sequenziale senza rispettare lo stile impostato nel form, in pratica non si capisce un tubo :(
Che codice devo usare per far andare a capo i dati,rispettando anche gli spazi?
Ho provato con vbcr, vbCrLf con chr(10) e chr(13) ma nulla! :(
Help!!!
PS Grazie
power1983
Utente Senior
 
Post: 1240
Iscritto il: 14/03/03 22:08

Sponsor
 

Postdi pjfry » 01/04/03 23:08

cioè devi inserire un carattere in una stringa per andare a capo? prova con '\n' ... ma non mi ricordo se funziona in VB e poi non ho capito bene il problema :P
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi kadosh » 01/04/03 23:41

Non ti seguo, se io volessi scrivere:

Antonio Germani
Via del Mulino Bianco 146
00186 Roma

scriverei:

str = "Antonio Germani " & vbCrLf
str = str + "Via del Mulino Bianco 146 " & vbCrLf
str = str + "00186 Roma " & vbCrLf & vbCrLf
MsgBox str

Così va bene per una simil Message Box...per un Form...te lo crei su misura, a seconda dei dati che inserisci...o no? ;)
Ch®is ˜˜ www.glgroup.it˜˜ {~Up You® Life~}™ Semper Fidelis
Avatar utente
kadosh
Moderatore
 
Post: 3791
Iscritto il: 24/09/01 01:00
Località: Roma

Postdi power1983 » 02/04/03 21:33

Nel mio form ho creato un textbox con il nome di messaggio nel quale ad esempio scrivo:
" Questo forum è
grandioso
provatelo "

scrivo il codice

str = "Antonio Germani " & vbCrLf
str = str + "Via del Mulino Bianco 146 " & vbCrLf
str = str + "00186 Roma " & vbCrLf & vbCrLf
str = str + " " & messaggio

Visualizzazione nel client di posta :
Antonio Germani Via del Mulino Bianco 146 00186 Roma Questo forum ègrandiosoprovatelo
Come posso fare per poter visualizzare le stringhe in quest'altra maniera?

Antonio Germani
Via del Mulino Bianco 146
00186 Roma
Questo forum è
grandioso
provatelo
Grazie per la vostra pazienza
power1983
Utente Senior
 
Post: 1240
Iscritto il: 14/03/03 22:08

Postdi pjfry » 02/04/03 21:38

ma se invece che nel client di posta lo scrivi in un txt si vede come lo vuoi?
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi zello » 02/04/03 21:39

Così, per esperienza, in C nelle textbox multilinea *bisogna* andare a capo con \r\r\n (cioé 0x0a 0x0a 0x0d) - softbreak - altrimenti non va a capo una mazza.
Non so se serva, ma a me ha causato più di un mal di testa.
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi power1983 » 02/04/03 22:03

pjfry ha scritto:ma se invece che nel client di posta lo scrivi in un txt si vede come lo vuoi?

Penso di si... Bhooo
Cmq poi il problema sarebbe mandare questo file txt, come allegato di E-mail(procedura che deve essere in automatico)
Ma non perdiamoci in altri problemi! :D
zello ha scritto:Così, per esperienza, in C nelle textbox multilinea *bisogna* andare a capo con \r\r\n (cioé 0x0a 0x0a 0x0d) - softbreak - altrimenti non va a capo una mazza.

Purtroppo VB non accetta i comandi del C :( :evil:
power1983
Utente Senior
 
Post: 1240
Iscritto il: 14/03/03 22:08

Postdi zello » 02/04/03 23:22

chr(10)+chr(10)+chr(13). Scusa, sono più abituato al c.
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi power1983 » 02/04/03 23:56

Ho provato con l'iserimento dei caratteri ASCII, ma nulla .
Cmq x farvi capire meglio ecco il codice:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub invia_Click()
Dim testo As String
testo = "" & nome & " "
testo = testo + "" & problema.Text
Call MailTo(assistenza, nome, testo)
End Sub

Private Sub MailTo(frm As Form, Address As String, stext As String)
Call ShellExecute(frm.hwnd, vbNullString, "mailto: pippo@pippo.it" & "?subject= Assistenza Tecnica" & "&body=" & stext, vbNullString, vbNullString, 1)

End Sub


Indicazioni sul form :
Dove assistenza è il nome del form
nome è il nome del primo textbox , problema del secondo , quest' ultimo ha multiline = true e scrollbars = 2- vertical
invia è il tasto che fà partire il programma di posta elettronica
Per implementare il seguente codice ho utilizzato VB 5
Se eseguite il codice vi renderete conto del problema
Adesso credo che dovrebbe essere chiaro a tutti! ;)
power1983
Utente Senior
 
Post: 1240
Iscritto il: 14/03/03 22:08

Postdi Frengo78 » 03/04/03 00:39

& vbcrlf non funziona? e se invece usi il char di a capo?
Knowledge is a weapon
Frengo78
Utente Senior
 
Post: 8985
Iscritto il: 16/07/02 08:41
Località: Torino

Postdi power1983 » 03/04/03 00:57

Frengo78 ha scritto:& vbcrlf non funziona? e se invece usi il char di a capo?

Non ha funzionato per avere uno spazio tra una stringa ed un'altra ho dovuto creare una stringa vuota " " :(
power1983
Utente Senior
 
Post: 1240
Iscritto il: 14/03/03 22:08

Postdi piercing » 03/04/03 01:36

il problema è che stai usando una notazione "web"... che notoriamente non ha gli "a capo"... quindi se vuoi impostare un bel body della mail formattato devi usare l'HTML, quindi qualcosa del tipo

Codice: Seleziona tutto
mailto:pippo@pippo.it?subject=ciao&body=<html>primariga<br>secondariga</html>
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi power1983 » 03/04/03 02:25

piercing ha scritto:il problema è che stai usando una notazione "web"... che notoriamente non ha gli "a capo"... quindi se vuoi impostare un bel body della mail formattato devi usare l'HTML, quindi qualcosa del tipo
Codice: Seleziona tutto
mailto:pippo@pippo.it?subject=ciao&body=<html>primariga<br>secondariga</html>

Ho fatto come mi hai detto e funziona solo se scrivo all'interno del codice il valore del textbox (che non posso sapere a priori), ma se passo una variabile, che nel mio caso è "testo", non funziona.
power1983
Utente Senior
 
Post: 1240
Iscritto il: 14/03/03 22:08

Postdi zello » 03/04/03 16:03

Dovresti farne l'encoding in formato "digeribile" ai cgi (%20 al posto di spazio, %0a%0d per gli a-capo, e così via):
mailto:pippo@pluto.com.invalid?Subject=prova&Body=Questa%20e%20una%20prova%0a%0dAltra%20riga
Tieni conto comunque che mailto non gestisce più di un 250-300 caratteri (ci ho provato anch'io con abuse a usare shellexecute, Outlook Express muore silenziosamente, sospetto un buffer overflow da qualche parte, ma siccome Visual Studio crasha ancora prima e sicuramente per un buffer overflow, non ho fatto il debug per vedere dove succede).
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi piercing » 03/04/03 20:32

superzello ti ha detto quello che devi fare... inoltre non basta fare l'html encoding... ma ti serve anche la conversione dei chr(13) in stringhe "<br>".. tanto per dirne una...

problemi che chi fà web è ben abituato a conoscere... ;)

se posso darti un consiglio... utilizza delle tabelle HTML preformattate come variabile unica e includi le variabili "utente" nei punti esatti del codice HTML, sennò rischi di rasentare lo sclero!! :P
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi power1983 » 03/04/03 23:55

Fantastico :) ho risolto metà del problema con i vostri suggerimenti,ma c'è un ultimo ostacolo da superare. ;)
Se all'interno del texbox scrivo un messaggio e vado a capo premendo il tasto invio,visivamente va tutto ok,ma quando esporto il tutto nel client ,invece di trovare un "a capo" trovo la parola attaccata alla precedente :(
Il problema è che all'interno della stringa non posso inserire i tag di formattazione o fare l'html encoding, perchè il messaggio viene considerato tutto come un oggettto.Text
Spero che questa volta mi abbiate capito :neutral:
power1983
Utente Senior
 
Post: 1240
Iscritto il: 14/03/03 22:08

Postdi pjfry » 04/04/03 00:59

premetto che ancora non ci ho capito tantissimo, quindi potrei essere fuori strada come all'inizio :D
non puoi fare il parsing del contenuto del textbox prima di inviare al client? cmq la proprietà .text contiene una stringa,no? la parsi cercando il carattere di 'accapo' e lo sostituisci come devi (sono generico perchè ancora non ho capito quali vanno bene e quali no di caratteri :lol: )
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi power1983 » 06/04/03 14:43

Ragazzi ho risolto tutto :)
Adesso il mio grande problema di poter andare a capo non esiste piu!
Ho semplicemente modificato la funzione dei tasti ;)
Cioè adesso se qualcuno nel mio form preme invio, non ottiene un new line, ma bensì un backspace :lol:
power1983
Utente Senior
 
Post: 1240
Iscritto il: 14/03/03 22:08

Postdi pjfry » 06/04/03 14:51

power1983 ha scritto:Cioè adesso se qualcuno nel mio form preme invio, non ottiene un new line, ma bensì un backspace :lol:

:eeh: questo si che si chiama user-friendly :lol: :lol:
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi power1983 » 06/04/03 15:28

pjfry ha scritto: :eeh: questo si che si chiama user-friendly :lol: :lol:

Facile ma diretto :D
Non volevo farlo prima, mi sembrava troppo banale!
Dalla serie : Se non mi complico la vita non ci provo piacere :D
Ma dovevo completarlo .... e così ..... ;)
power1983
Utente Senior
 
Post: 1240
Iscritto il: 14/03/03 22:08


Torna a Software Windows


Topic correlati a "Help!!! Per chi conosce visual basic":


Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti