Seuraavanlainen ongelma:
Teen ohjelmaa, jossa tekstitiedostosta luetaan comboboxiin Nimi. Klikkaamalla Nimeä combossa, tekstitiedostosta luetaan tekstiboxiin vastaava Numero. Ideana on, että käyttäjä pääsisi muuttamaan tarpeen vaatiessa tota numeroa ja tallentamaan muutokset tekstitiedostoon. Saisko siis vinkkiä siitä miten muutosten tallentaminen tapahtuu? Kaikenlaista räpellystä on yritetty, mutta en ole saanut hommaa toimimaan kunnolla.
Onko pakko olla tekstitiedosto. Hajatiedostolla (Random) homma olisi yksinkertaisempi.
Mielellään tekstitiedosto, mutta voinhan mä tuota randomiakin kokeilla jos ei tekstit:n kanssa onnistu.
Jos nimiä ja numeroita on useita (oletettavasti), tulee tekstitiedoston kanssa ylimääräistä sähellystä tiedoston avaamiseksi ja sulkemiseksi lukua ja kirjoitusta varten. Hajatiedostoa voi lukea ja sinne kirjoittaa samalla avauksella ja riviä voi suoraan osoittaa indeksillä. siksi se on paljon sujuvampi. kerro tarkemmin, mitä tiedostossa on. Nimi ja puh. numeroko vai jokin muu numero ?
Tiedostossa on n. 13 tietuetta, joissa on nimi ja eräänlainen kerroin muotoa 2,34. Ja tuo kerroin on siis se mitä käyttäjän pitäis päästä muuttamaan.
Jos nimiä on noin vähän kannattaa tiedot lukea Comboon ohjelman käynnistyksen yhteydessä ja tallentaa ohjelman päättyessä ja haluttaessa ohjelman aikana. Kerroin voidaan tallentaa myös Comboon kokonaislukuna. Jos 2 desimaalia riittää niin satakertaisina. Voi myös käyttää indeksoitua liukulukumuuttujaa. Luku- ja tallennusrutiinit riippuvat hieman siitä, miten nimi ja kerroin erotetaan toisistaan ja onko nimessä etu ja sukunimi. Kertoimen näyttö ja muokkaus onnistuu esim. seuraavasti:
Private Sub Combo1_Click() txtKerroin = Combo1.Itemdata(Combo1.ListIndex)/100 End sub Private Sub txtKerroin_Keypress(KeyAscii As Integer) If KeyAscii = 13 Then Combo1.Itemdata(Combo1.ListIndex) = 100 * txtKerroin End If End Sub
Jos tiedostossa on vain n. 13 tietuetta, niin mikset lue kerralla kaikkia arvoja taulukkoon, Nimi ja Kerroin omaan sarakkeeseen, kun ohjelmasi käynnistyy? Comboon luet nimet taulukosta. Ja kun klikkaat combosta nimeä, niin esität vain taulukosta vastaavan kertoimen. Kun kerrointa muuttaa, se päivitetään taulukkoon ja textitiedosto kirjoitetaan uudestaan taulukon arvojen mukaan lyhyellä silmukalla.
Edit: setä kerkes edelle
Aihe on jo aika vanha, joten et voi enää vastata siihen.