PDA

View Full Version : [VB6] Salvare un percorso


OrcaAssassina
14-06-2006, 23:14
Per inserire un percorso utilizzo tali stringhe:


Private Sub Command3_Click()
Dialog.DialogTitle = "Browse for file..." 'set the dialog title
Dialog.ShowOpen 'show the dialog box
Text13.Text = Dialog.FileName

Image1 = LoadPicture(Text13.Text)
End Sub


A questo punto la mia text13.text conterrà ad esempio un percorso del genere:

H:\Documenti\Database\Marco\Foto\Immagini\Foto.jpg


Se un utente sposta la cartella del programma perde tutti i riferimenti

Io vorrei salvare con un percorso relatativo

Nella form logicamente ho l'oggetto CommondDialog

Il programma è contenuto nella cartella Foto dove al suo interno c'è la cartella Immagini che contine tutte le immagini

Mi modificate le stringhe affinchè il percorso diventi relativo.

Ciao e grazieeeeeeee

mynos79
15-06-2006, 08:00
Alla fine le immagini si troverebbero in:

App.Path & "\Immagini\" & nomefile & ".jpg"

Basta quindi, una volta che hai il percorso preso dalla dialog, modificare la stringa del percorso con la funzione Mid o altre di modifica stringa ... e sostituire tutto quello che c'è prima di "\Immagini" con App.Path (che è il percorso della cartella in cui si trova l' eseguibile dell' applicazione).

Il seguente codice l' ho fatto usando la funzione Split(stringa, delimitatore) che divide la stringa passata in pezzi separati dal carattere messo come delimitatore ed assegna i vari pezzi ad un array stringa.
Fatto questo creo la nuova stringa percorso usando app.path + gli ultimi 2 elementi del vettore (ovvero "Immagini" e " nomefile.jpg") ... così da eliminare il problema nel caso in cui ci fosse un percorso contenente tante parole "Immagini", alla fine si usa solo l' ultima ...

Dim p, p1, p2() As String
p = "H:\Documenti\Immagini\Marco\Foto\Immagini\Foto.jpg"
p2 = Split(p, "\")
p1 = App.Path & "\" & p2(UBound(p2) - 1) & "\" & p2(UBound(p2))
'p' indica il percorso originale della Dialog
'p1' è il percorso modificato relativo finale
'p2' è l' array usato per la modifica: ("H:","Documenti","Immagini","Marco","Foto","Immagini","Foto.jpg")

'p1' alla fine vale: app.path\Immagini\Foto.jpg
dove app.path è il percorso del programma senza il carattere '\' ...

mynos79
15-06-2006, 08:29
Ho editato perchè ho corretto alcune cose nel codice ...

OrcaAssassina
15-06-2006, 09:53
Ok grazieeeeeeeeeeeeeeeeeeeeeeeeeeeee