Eli kuvitellaan, että minulla on tiedosto ownership.ini jossain hakemistossa (liittyy fake os:iin :D), jossa on lista tiedostoista ja käyttäjien oikeuksista tiedoston suorituksessa.
Tiedosto näyttää tältä
[Readme.txt] Owner=root root=rw juhaz=rw jokumuu=rw [Readme2.txt] Owner=root root=rw juhaz=r jokumuu=
Eli se osaisi erottaa nuo []-merkkien välissä olevat eri tiedostoiksi tai jotain...
Siis osaako kukaan sanoa kuinka tuo oikein tehdään? Itse olen yrittänyt jo varmaan 100 eri kertaan, mutta en mä saa sitä toimimaan :(
Siis koodin pitäisi pätkiä eri tiedostoihin:
Owner=root root=rw juhaz=rw jokumuu=rw
ja
Owner=root root=rw juhaz=r jokumuu=
vai miten?
Miksi se pitää tallentaa juuri tuolla tyylillä?
Koita keksiä helpompi tallennustapa, jos tallennustavalla ei ole väliä.
Niin no mä vaan ajattelin, että tuolla tavalla saisi ohjelman tunnistamaan tiedostot ja samalla tunnistamaan, että onko käyttäjällä oikeuksia kyseisen tiedoston suorittamiseen vaiko ei.
Ini-tiedostojen käsittelyyn on omat api-funktionsa VB:ssä, eli GetPrivateProfileString ja WritePrivateProfileString. Katso nämä...
Ongelma vain on se, että tuo pitäisi olla quickbasicille :D
EDIT: Tuosta tulikin heti ongelma, kun aloin testailemaan visual basicilla tuota.
Private Sub File1_DblClick() Dim x As Long, arvo As String arvo = String(255, " ") x = GetPrivateProfileString(File1.FileName, user$, "", arvo, 255, "c:\testi.ini") MsgBox arvo If arvo = "rw" Then Shell file1.path & "\" & File1.FileName, vbNormalFocus MsgBox arvo End Sub
Myöskään select casella tuo ei toiminut, ei vain käynnisty käyttäjän klikkaama ohjelma vaikka sen arvo on rw, mutta jos jätän noi iffit ja select caset pois, että on pelkkä shell niin sitten toimii. Jotain keinoa saada ohjelma käyntiin iffit tai select casen kanssa?
En nyt ihan vieläkään käsittänyt, mitä haet takaa tässä, mutta kai voit lukea tiedostoa rivi kerrallaan ja sitten, kun joltain riviltä löytyy hakasulkuja, muutat käsittelytapaa eri tiedoston mukaiseksi.
kannattaa erottaa oikeudet ja käyttäjät eri tiedostoihin.. eli siis on olemassa 2 tiedostoa jotka ovat esim. user.ini ja vaikka right.ini (tohon en keksinyt parempaa kutta muuta sitä :)).
ja sitten luet ne rivi kerrallaan.. esim "user.ini" on vaikka #1 ja "right.ini" on #2
loput osaat(?)
jos haluat niin yksi "esimerrki", jonka mä tein joskus niin ois täällä: www.pox.fi/~eraggo
ja sieltä sitten hsp.bas
huom! huonosti kommentointi
jos tulee ton yllä olevan osoitteen kanssa ongelmia sopii ottaa yhteyttä...
Tietääkö joku miksi tuo exen suorittaminen ei onnistu tuon koko pätkän kanssa, mutta sitten yksin ollessaan shell toimii?
juhaz kirjoitti:
Ongelma vain on se, että tuo pitäisi olla quickbasicille :D
EDIT: Tuosta tulikin heti ongelma, kun aloin testailemaan visual basicilla tuota.
Private Sub File1_DblClick() Dim x As Long, arvo As String arvo = String(255, " ") x = GetPrivateProfileString(File1.FileName, user$, "", arvo, 255, "c:\testi.ini") MsgBox arvo If arvo = "rw" Then Shell file1.path & "\" & File1.FileName, vbNormalFocus MsgBox arvo End SubMyöskään select casella tuo ei toiminut, ei vain käynnisty käyttäjän klikkaama ohjelma vaikka sen arvo on rw, mutta jos jätän noi iffit ja select caset pois, että on pelkkä shell niin sitten toimii. Jotain keinoa saada ohjelma käyntiin iffit tai select casen kanssa?
koitappa if ucase(replace(trim(arvo),vbcrlf,"")) = "RW" then shell jne
tuo arvo pitää trimmata koska muuten se ottaa koko rivin ja siihen kuuluu välilyöntejä ja joskus tuonne eksyy enttereitä ja sitten ucasella varmistetaan että kirjaimet vastaa
Aihe on jo aika vanha, joten et voi enää vastata siihen.