Miten saisin ohjelman tietoon ylemmän hakemiston? Siis vaikka ohjelma asustaa kansiossa C:\Omat jutut\kansio\ ja sen pitää saada jostain selville että ylempi kansio on "Omat jutut".
Eikös ainakin komentorivillä kirjoiteta vaikka cd-komentoa käyttäessä "..\", jos halutaan linkittää ylempään hakemistoon. Mutta en ole varma sitten sen toiminnasta VB:ssä. :)
Ohjelman oma hakemisto on muuttujassa App.Path.
Ylemmän hakemiston voi selvittää oman funktion avulla:
Function Ylempi(hakemisto As String) Dim kohta As Integer If Len(hakemisto) = "3" Then Ylempi = hakemisto Exit Function End If kohta = InStrRev(hakemisto, "\", Len(hakemisto) - 1) Ylempi = Left(hakemisto, kohta) End Function
Tämä funktio säilyttää juurihakemiston (esim. "C:\") entisellään.
Oho, luinpas väärin. Siis piti saada SELVILLE ylempi kansio. Hitsit. :(
Kiitos TGuinner, toimii hyvin :) . Kyllä tuokin "..\" toki auttaa, mutta Antin funktio meni yli hilseen... (en ymmärtänyt mitä se tekee, saisinko apuja?)
Tässä pikku esimerkki:
Private Sub Form_Load() MsgBox App.Path ' esim. C:\vb\omat MsgBox Ylempi(App.Path) ' C:\vb\ MsgBox Ylempi(Ylempi(App.Path)) ' C:\ End Sub
Funktio siis palauttaa sille annetun hakemistopolun niin, että sisin hakemisto on poistettu.
Wau!
Nyt ymmärsin.
Todella kätevää... todella kätevää... Kiitos Antti...!
EDIT: Mikä on "InStrRev()"?
kayttaja-4976 kirjoitti:
Mikä on "InStrRev()"?
https://www.ohjelmointiputka.net/hak/?kieli=Visual Basic&nimi=InStrRev
Kiitos nyt toimii
Aihe on jo aika vanha, joten et voi enää vastata siihen.