Minulla on ohjelma, joka lataa netistä tiedoston, jonka käyttäjä asettaa (esim. http://www.test.com/test.zip) niin kuinka saan selville, että mikä on sen tiedoston nimi ja pääte automaattisesti?
Entä kuinka minä voin tehdä rekisteriin kohtaan HKEY_CLASSES_ROOT hakemiston nimeltä 'joku' ja sinne hakemistot DefaultIcon, shell (ja shelliin open ja open:iin command) ja kirjoittaa jotain arvoja niiden merkkijonoarvo-kohtiin?
juhaz kirjoitti:
kuinka saan selville, että mikä on sen tiedoston nimi ja pääte automaattisesti?
Ota tuo käyttäjän antama URL, etsi siitä viimeinen kauttaviiva, ja ota kaikki sen jälkeen olevat merkit.
juhaz kirjoitti:
Entä kuinka minä voin tehdä rekisteriin kohtaan HKEY_CLASSES_ROOT hakemiston nimeltä 'joku' ja sinne hakemistot DefaultIcon, shell (ja shelliin open ja open:iin command) ja kirjoittaa jotain arvoja niiden merkkijonoarvo-kohtiin?
Ensimmäiseen vielä, että jos tiedosto välitetään vaikkapa PHP-skriptiltä liitteenä, niin homma käy perin mutkikkaaksi. Monet lataussivuthan jakavat tiedostoja linkeistä kuten
.../lataus.php?tiedosto=joku.zip
ellei peräti
.../lataus.php?file_id=10237
, että ota nyt tuosta sitten selvää. :)
Löysin tuohon rekisterin kirjoitus-juttuun toimivan ja helpon scriptin.
Private Function RegWrite(Key1, SValue As String) Set WSHShell = CreateObject("WScript.Shell") WSHShell.RegWrite Key1, SValue End Function Private Sub Command1_Click() RegWrite "HKEY_CLASSES_ROOT\joku2\DefaultIcon\", Chr(34) & "D:\joku\joku.exe" & Chr(34) RegWrite "HKEY_CLASSES_ROOT\joku2\shell\open\command\", Chr(34) & "D:\joku\joku.exe" & Chr(34) & " %1" RegWrite "HKEY_CLASSES_ROOT\joku2\", "URL: joku Protocol" RegWrite "HKEY_CLASSES_ROOT\joku2\URL Protocol", "" End Sub
Joo en kyllä keksi miten tuo nimi pitäisi hoitaa. Yritin purkaa osoitetta osiin, mutta siitäkin ilmeni se ongelma, että pitäisi tietää, että se osoite jakautuu aina neljään osaan tj :/
oliskoha joku right$ ja sillä ettii sen /-merkin
juhaz kirjoitti:
Joo en kyllä keksi miten tuo nimi pitäisi hoitaa. Yritin purkaa osoitetta osiin, mutta siitäkin ilmeni se ongelma, että pitäisi tietää, että se osoite jakautuu aina neljään osaan tj :/
Lue vastauksen otsikossta (header)
InStr kertoo missä kohdassa joku teksti on toisessa. InStrRev on sama mutta aloittaa etsimisen lopusta. Mid nappaa merkkijonosta palan.
Tietysti voit käyttää Split rakennetta eli
Dim Taulukko() As String Dim Osote As String Osote = "Osote\juttu\lisäjuttu\hassu\joo" Taulukko = Split(Osote,"\") 'Taulukko(0) on Osote 'Taulukko(1) on juttu jne... For I = 0 To UBound(Taulukko) MsgBox Taulukko(I) Next I
Eli räjäytetään teksti taulukkoon "\" merkin väleiltä ja sitten annetaan jokainen osa MsgBoxilla ulos. Sovella tuota
tesmu kirjoitti:
Tietysti voit käyttää Split rakennetta eli
Dim Taulukko() As String Dim Osote As String Osote = "Osote\juttu\lisäjuttu\hassu\joo" Taulukko = Split(Osote,"\") 'Taulukko(0) on Osote 'Taulukko(1) on juttu jne... For I = 0 To UBound(Taulukko) MsgBox Taulukko(I) Next IEli räjäytetään teksti taulukkoon "\" merkin väleiltä ja sitten annetaan jokainen osa MsgBoxilla ulos. Sovella tuota
Kiitos. Nyt toimii.
Aihe on jo aika vanha, joten et voi enää vastata siihen.