Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Salasanan muuttaminen?

Sivun loppuun

juku [08.02.2004 11:27:18]

#

On tekstitiedosto, jossa on tallennettu käyttäjätunnus jasalasana samalle riville:

minnapo;juuuuuuuuu
maurilo;hhhhhhhhh
jonni;hupi
kake;kopia

Nyt pitäsi selata tiedostoa ja muuttaa vain yhtä tunnusta… mutta mulla on virhe sekä selaa, että muuta aliohjelmassa. Selaa ohjelmassa en osaa jakaa kahdelle riville eli käyttöliittymässä on kayttäjätunnus ja salasana erillisillä tekstikentissä.Muutos aliohjelman muuttaa kyllä, mutta poistaa kaikki muut tunnustukset tiedostosta. Koodi on tässä:

Private Sub cmdSelaa_Click()

        txtKäyttäjä = ObjTextStream.ReadLine
        txtSalasana = ObjTextStream.ReadLine
        'Jos kyseessä on viimeinen tietue, niin ohjelma     lähettää ilmoituksen siitä
        If ObjTextStream.AtEndOfStream Then
            MsgBox "Se oli viimeinen tietue. Muuta tatä tai sulje selain lomakkeen yläkulmasta"
        End If
End Sub

Private Sub cmdTalleta_Click()
  'Tallentaa kyllä koravut tiedot, mutta poistaa kaikki entisetkin

  Set ObjTextStream = ObjFso.OpenTextFile("C:\Testi\Tunnukset.txt", ForWriting)
   ObjTextStream.WriteLine txtKäyttäjä
   ObjTextStream.WriteLine txtSalasana
   'sulkee tiedoston
   ObjTextStream.Close
   MsgBox "Muutos tallennettu tiedostoon. Sulje selain lomakkeen yläkulmasta"

End Sub

petrinm [08.02.2004 11:39:04]

#

Koodista päätellen kyseessä on VB.net.

juku [08.02.2004 11:55:46]

#

Ei vaan VB 6.0. Siinä on uudempaa File System Object (FSO) -objektimallia. Pitäs onnistua senkin avulla.

tnb [08.02.2004 13:45:43]

#

Käytä ForAppending menetelmää niin lisää viimeiseksi.

Can be one of three constants: ForReading, ForWriting, or ForAppending.

juku [08.02.2004 14:13:29]

#

Joo, mutta... silloinhan se ei muuta käyttäjän salasanaa, niin kuin olisi tarkoitus.

setä [08.02.2004 15:23:14]

#

Käytä hajatiedostoa (Random)

juku [08.02.2004 15:57:25]

#

Nyt en oikein ymmärrä. Kumpaan ongelmaan se voisi auttaa selaa vai talleta?

setä [08.02.2004 17:25:16]

#

Tallentamiseen lähinnä. Mutta onhan hajatiedoston luku ja sinne kirjoitus verrattomasti kätevämpää kuin rivitiedoston.

juku [09.02.2004 09:14:33]

#

Autatko lisää? En löydä hajatiedoston käytön ohjeita.

setä [09.02.2004 10:18:07]

#

Ensin valmis tekstitiedosto on muutettava hajatiedostoksi. Hajatiedoston tietueen tyyppi määritellään moduulissa Type-lauseella:

Type Tunnus 'käyttäjätunnus ja salasana
    Dim kt As String * 12 'enintään 12 merkkiä
    Dim ss As String * 12 'voit muuttaa maksimimäärän halutessasi
End Type

Lomakkeella määritellään tunnus, esim ks

Dim ks As Tunnus

Lue tekstitiedostosta rivikerrallaan tunnukset ja salasanat, jotka on pilkulla erotettu. Aseta ne tunnukseen ja tallenna hajatiedostoon esim. Tunnukset.dat

'hajatiedoston avaus
Open "C:\Testi\Tunnukset\Tunnukset.dat" For Random As 2 Len = Len(ks)

'lukusilmukka, jossa luet tekstitiedoston rivi kerrallaan loppuun
      ...
      ks.kt = txtKäyttäjä
      ks.ss = txtSalasana
      Put #2, , ks
    Loop
Close

Avatusta hajatiedostosta voit lukea tietueen

    Get #2, I, ks 'I = tietuenumero, ensimmäinen 1
'muuta salasana
    ks.ss = uusisalasana
'tallenna
    Put #2, I, ks

'Sulje tiedosto kun ohjelma päättyy
Close

Toivottavasti tästä on apua ja toivottavasti ei tullut paljoa kirjoitusvirheitä.

juku [09.02.2004 11:31:56]

#

Kiitos! Kokeilen...


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta