Bookmarks su browser?

mercoledì 17 ottobre 2012 - 20.28
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows 7  |  Visual Studio Express

ademontis Profilo | Newbie

Buongiorno a tutti...
sto scrivendo un browser su visual studio 2008 express in VB e vorrei implementare i bookmarks, usando come metodo la scrittura / lettura di un file txt
L' idea sarebbe che da una pagina, clickando il bottone 'aggiungi ai preferiti', un codice fa un append a un file 'preferiti.txt'
nella forma TITOLO,URL
Nel browser una combobox mostrerebbe tutti i TITOLO, e selezionandone uno il programma dovrebbe prendere il corrispondente URL e passarlo al componente webbrowser1
Per fare il parse del file di testo sto usando questo codice nella sezione Form_load:

Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("preferiti.txt")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
--- AZIONE --
Next
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("la linea " & ex.Message & "contiene un errore")
End Try
End While
End Using

dove ho scritto --AZIONE-- vorrei mettere il codice che:
- salva il currentfield PRIMA della virgola delimitatrice in una stringa (sarà il titolo)
- lo aggiunge alla combo tramite combobox1.additem (...)
- salva il currentfield DOPO la virgola delimitatrice in una seconda stringa (sarà l' URL)

il problema é che non so come fare in modo, essendo i preferiti in quantità variabile, che alla selezione di un certo preferito (ad esempio il 6°, 6a linea del file) l' url passata sia proprio quella corrispondente.
Suppongo si debba usare un ciclo che va da 1 al numero di linee contenute nel file di testo, e per contarle sto usando questo sistema:

- ho creato la variabile LINES come Long nella sezione settings del progetto
- utilizzato:
Dim lines As Long
lines = IO.File.ReadAllLines("preferiti.txt").Length
My.Settings.booklines = lines
My.Settings.Save()
My.Settings.Reload()

ma a questo punto mi blocco... non riesco a impostare il ciclo e non riesco concettualmente a capire in che punto inserirlo, se all' interno del parser o nella sezione dedicata al combobox

Ogni suggerimento é graditissimo!!
Grazie in anticipo

P.s. altrove mi hanno detto "usa un database o un file excel...". Purtroppo non posso, Visual Studio mi dà problemi con i componenti JET

Vinsent Profilo | Senior Member

Puoi usare un xml al posto del txt e la classe dataset per leggere/scrivere il primo, in questo modo "simuli" un database o un file excel...in pratica avresti una tabella con due colonne, "titolo" e "url", e tante righe quante sono i bookmarks, il tutto in formato xml.
Quando fai partire il programma leggi il file xml e carichi i dati nel dataset, i valori della colonna "titolo" li aggiungi ad un controllo qualsiasi tipo una combobox o una listbox e al click con una funzione ricavi il valore corrispondente della colonna "url" con un ciclo sul dataset.
Mentre per il "salva bookmarks" basta che aggiungi una riga al dataset contente i due dati e alla chiusura del programma salvi i dati del dataset nel file xml.
Inoltre potresti visualizzare/modificare il tutto con un datagridview.
Se ti interessa la soluzione e hai dei problemi nell' applicarla chiedi pure.
ciao

Feroxis Profilo | Junior Member

Come nei browser potresti mettere i preferiti in un pulsante se hai una toolstrip.
Metti un bottone poi additem per ogni riga che viene letta sul file txt
ogni riga è composta dal link di riferimento.
Questo caricamento avviene all'apertura del browser.
Fattibile con uno stram reader e un loop
sccrivo a mano e non fatto in visual potrebbe essere ibn linea di massima:

do until reader.endofstream
dim tollstripbutton as new toolstripbutton
toolstripbutton.text = reader.readline
addhandler toolstripbutton.click, addressof toolstripbutton_click
toolstrip.additem(tollstripbutton)
loop


Poi
Friend withevents toolstripbutton as new toolstripbutton

sub private toolstripbutton_click(sender as system.windows.form.toolstripbutton, e as EventArgs) Handles toolstripbutton.click
webbrowser1.navigete(sender.text)
end sub
Possibile?

Vinsent Profilo | Senior Member

>Possibile?
Si...ma visto che scrive di descrizione/URL, quindi due elementi diversi ma associati, penso che il mio metodo sia più efficace e semplice da attuare....

PS: My.Settings, come sono usati, non c' entrano na' mazza............
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5