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
Koodista päätellen kyseessä on VB.net.
Ei vaan VB 6.0. Siinä on uudempaa File System Object (FSO) -objektimallia. Pitäs onnistua senkin avulla.
Käytä ForAppending menetelmää niin lisää viimeiseksi.
Can be one of three constants: ForReading, ForWriting, or ForAppending.
Joo, mutta... silloinhan se ei muuta käyttäjän salasanaa, niin kuin olisi tarkoitus.
Käytä hajatiedostoa (Random)
Nyt en oikein ymmärrä. Kumpaan ongelmaan se voisi auttaa selaa vai talleta?
Tallentamiseen lähinnä. Mutta onhan hajatiedoston luku ja sinne kirjoitus verrattomasti kätevämpää kuin rivitiedoston.
Autatko lisää? En löydä hajatiedoston käytön ohjeita.
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ä.
Kiitos! Kokeilen...
Aihe on jo aika vanha, joten et voi enää vastata siihen.