View Full Version : [Visual Basic] Acquisire parte di un link con visual basic
Salve a tutti,
sono qua per farvi una domanda dato che non riesco a venirne fuori.
Ho fatto un programma con due form: nel primo c'è la parte browser e nel secondo form il programma vero e proprio.
Nel form2 ho fatto dei pulsanti, che se premuti mi inviano a un'altro link. Questo funziona, ma vorrei che, quando uso la parte browser, vorrei che il programma mi copiasse una parte di link.
Ecco un'esempio (inventato).
Dalla parte browser (form1) vado a finire qua:
www.google.it/gmail/codiceutente3456.html
Vorrei che il programma mi prendesse il codice utente 3456 e lo copiasse, mettendolo da qualche parte ad esempi osul source:
userid=3456
Questo in modo da poter fare un pulsante con il collegamento rapido alle email dell'utente 3456, mettendo un codice tipo:
Form1.WebBrowser1.Navigate ("www.google.it/gmail/codiceutenteUSERID")
Io vorrei che questo sia soggettivo, ovvero so che potrei scriveer direttamente il link normale, ma siccome il programma non lo userò solo io ma anche altri, allora il codice cambia ogni volta.
Se mi sono spiegato male ditemelo;)
Grazie come sempre:)
Non è molto corretto come approccio al problema.
Se è previsto che più utenti siano "autorizzati" ad accedere al sito attraverso una finestra dell'applicazione, ciascuno con la propria userid, bisognerebbe anzitutto averne una lista.
Il resto è semplice, basta concatenare 3 stringhe componenti il link, di volta in volta con la userid desiderata :
Dim radiceUrl As String = "www.google.it/gmail/codiceutente"
Dim userid As String = "3456"
Dim htm As String = ".html"
WebBrowser1.Navigate(radiceUrl & userid & htm)
Grazie MarcoGG ma purtroppo non mi sono spiegato bene.
Io non so il codice utente, perchè ogni volta che una persona si connette cambia, e non so quelli di ogni persona.
Quindi vorrei che appena la persone X si connettesse, il programma copiasse la parte finale del link e la mettesse ad esempio così:
userid = codicelink
Il problema è che non so come far copiare in modo temporaneo l'ultima parte del link.
grazie:)
Se i link sono formattati sempre in quel modo, quale che sia la loro lunghezza e il numero di caratteri numerici dell'userid da estrarre, puoi usare una routine simile a questa :
Dim link As String = "www.google.it/gmail/codiceutente3456.html"
'oppure dalla textbox : Dim link As String = TextBox1.Text
Dim userid As String
Dim ultimoChr As Integer = 0
Dim primoChr As Integer = 0
For i As Integer = link.Length - 1 To 0 Step -1
If Char.IsNumber(link(i)) = True And ultimoChr = 0 Then ultimoChr = i
If Char.IsNumber(link(i)) = False And ultimoChr > 0 Then
primoChr = i + 1
Exit For
End If
Next
userid = link.Substring(primoChr, ultimoChr - primoChr + 1)
MsgBox(userid)
Prova... ;)
grazie per la risposta ma...in alcune frasi mi segna alcuni errori....
il link dove viene salvato?
Ad esempio, c'è un comando del tipo:
codice=Form1.webbrowser1.link?
Grazie
grazie per la risposta ma...in alcune frasi mi segna alcuni errori....
il link dove viene salvato?
Ad esempio, c'è un comando del tipo:
codice=Form1.webbrowser1.link?
Grazie
Il link viene salvato nella stringa :
Dim userid As String
Hai fatto un esempio preciso, e questo codice risolve, comunque posta le "frasi" in cui va in errore.
Scusa, ma prima di divenire l'url del controllo webbrowser, quella stringa link verrà messa a mano da qualcuno, no ? Sennò come fa l'utente a usare la tua applicazione ?! :mbe:
grazieeeeee
Insieme all'aiuto di un mio amico funziona:D :D :D
Ora ho un'altra domandina.....
Come faccio a visualizzare il sorgente pagina?
Vorrei una cosa di questo genere:
command1->apre form2
->in una label/textbox visualizza la sorgente pagina del form1.webbrowser1
Grazie:D
Se per "sorgente pagina" intendi il codice HTML del Document attualmente caricato ( e a caricamento completato ) nel WebBrowser, semplicemente lo puoi ricavare con la proprietà "DocumentText" :
WebBrowser1.DocumentText
Così facile?:D
Grazie...
Ora ho un'altra domanda:
Dal codice HTML, posso copiarne una parte?
Per esempio, vorrei una cosa che mi copiasse un numero definito di lettere dopo una parte di codice, da me indicato, per esempio:
</html>
<title>Ciao a tutti-abcd</title>
</html>
Vorrei che visual basic mi copiasse le lettere abcd dopo le lettere ciao a tutti- in una cosa del tipo:
let=lettere dopo ciao a tutti-
Per poi fare una cosa del tipo:
Text1.text=let
Grazie MarcoGG,:) come sempre
Upupupuppupupupupu:D
Qualcuno sa aiutarmi? :D
non mi dimentico di questo 3d:cry:
Tesinevb
09-03-2011, 06:38
Così facile?:D
Grazie...
Ora ho un'altra domanda:
Dal codice HTML, posso copiarne una parte?
Per esempio, vorrei una cosa che mi copiasse un numero definito di lettere dopo una parte di codice, da me indicato, per esempio:
</html>
<title>Ciao a tutti-abcd</title>
</html>
Vorrei che visual basic mi copiasse le lettere abcd dopo le lettere ciao a tutti- in una cosa del tipo:
let=lettere dopo ciao a tutti-
Per poi fare una cosa del tipo:
Text1.text=let
Grazie MarcoGG,:) come sempre
devi usare l'istruzioni mid e len vattela a vedere e poi tagli dove vuoi una qualunque frase, dopodichè incolli come ti pare le stringhe...
ti faccio un esempio:
a$="linkdelmiosito"
b=len(a$)
c$=mid(a$,b,3)
'oppure
c$=mid(a$,3,7)
d$="let"+c$
print d$
prova questo piccolo codice e prova a cambiare i valori 3 e 7
vedrai che imparerai a farlo da solo
ciao
Dal codice HTML, posso copiarne una parte?
Per esempio, vorrei una cosa che mi copiasse un numero definito di lettere dopo una parte di codice, da me indicato, per esempio:
</html>
<title>Ciao a tutti-abcd</title>
</html>
Vorrei che visual basic mi copiasse le lettere abcd dopo le lettere ciao a tutti- in una cosa del tipo:
let=lettere dopo ciao a tutti-
Per poi fare una cosa del tipo:
Text1.text=let
1. Puoi ricavare direttamente il TITLE di un doc. HTML, senza passare dal DocumentText ( sorgente HTML ), semplicemente con Document.Title.
2. In VB.NET puoi usare Mid() o Right(), ma sono Funzioni statiche VB6. Un loro utilizzo non è da .NET.
In .NET si usa Substring sull'Oggetto stringa.
E ovviamente nessun bisogno dei caratteri dollaro $ ( che è solo ciarpame ereditato da versioni pre-VB6, e di nessuna utilità in .NET ).
Perciò :
Dim htmlTitle As String = WebBrowser1.Document.Title
Dim lettere As String = htmlTitle.Substring(htmlTitle.Length - 4)
TextBox1.Text = lettere
Dove 4 è il numero dei caratteri presi da destra che ci si aspetta di estrarre.
:)
devi usare l'istruzioni mid e len vattela a vedere e poi tagli dove vuoi una qualunque frase, dopodichè incolli come ti pare le stringhe...
ti faccio un esempio:
a$="linkdelmiosito"
b=len(a$)
c$=mid(a$,b,3)
'oppure
c$=mid(a$,3,7)
d$="let"+c$
print d$
prova questo piccolo codice e prova a cambiare i valori 3 e 7
vedrai che imparerai a farlo da solo
ciao
ciao e grazie
Una sola domanda.....a cosa si riferiscono i valori 3 e 7?
Grazie:D
Tesinevb
14-05-2011, 23:42
ciao e grazie
Una sola domanda.....a cosa si riferiscono i valori 3 e 7?
Grazie:D
se non erro (non programmo più)
3 uguale a "n" e 7 uguale a "o"
quindi "nkdelmio"
bye bye...
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.