Hei vaan kaikille!
Olen tässä rakentamassa hyvin yksinkertaista ja helppokäyttöistä kalenteriohjelmaa. Opiskelen ensimmäistä vuotta datanomiksi Lappeenrannassa(vaiko Lappeen rannassa?) ja yritän saada ohjelmoinnin numeron parhaaksi mahdolliseksi rakentamalla tätä ohjelmaa.
Suunnittelu on jäänyt vähän vaiheeseen, ryntäsin suoraan kirjoittamaan ohjelmaa(hyihyi, ruma tapa), joten arvattavissa on että ongelmia on syntynyt. Olen saanut ohjelman toimimaan jo "puoliksi", eli ohjelma osaa kirjoittaa tiedostoon päivämäärän ja sitä vastaavan merkinnän, mikä ohjelmalla on tehty.
Ohjelmassa on "Hae merkintöjä"-toiminto ja sen pitäisi toimia niin, että kun käyttäjä kirjoittaa ruutuun päiväyksen, ohjelma ilmoittaa, montako merkintää päivälle on ja kirjoittaa ko. merkinnät ruudulle. En vain keksi millä tavoin tämmöinen onnistuisi, en ole ehtinyt perehtymään VB:n vielä paljoa, tosiaankin ensimmäistä vuotta opiskelen. Tuossa vielä ohjelman koodi, jos joku sitä sattuu tarvitsemaan:
Option Explicit Private Sub cmdLisaa_Click() 'm. tarvittavat muuttujat Dim pvm As Date Dim merkinta As String 'annetaan muuttujille arvot pvm = txtPvm merkinta = txtMerkinta 'avataan tiedosto kirjoittamista varten ja kirjoitetaan siihen Open "c:\noter\arkisto.txt" For Append As #1 Print #1, pvm & ": " & merkinta MsgBox "Tallensit päivälle " & pvm & " merkinnän: " & "'" & merkinta & "'" Close #1 End Sub 'ja tästä eteenpäin pitäisi saada cmdHae-nappia painettua saada ohjelma hakemaan arkisto.txt-tiedostosta päivämäärä ja sitä vastaavien merkintöjen määrä ja itse merkinnät Private Sub cmdHae_Click()
Terve,
Tässä opas tiedostoihin VB:ssä:
https://www.ohjelmointiputka.net/oppaat/opas.
Tässä on ensinnäkin yksinkertainen koodi, joka näyttää tiedoston rivit yksi kerrallaan ja laskee niiden määrän:
Dim rivi As String Dim maara As Integer Open "tiedosto.txt" For Input As #1 While Not EOF(1) Line Input #1, rivi maara = maara + 1 MsgBox "Rivi " & maara & ": " & rivi Wend Close #1
Tämä koodi taas erottaa merkkijonosta päivämäärän ja merkinnän, jos niiden välissä on kaksoispiste ja välilyönti:
Dim mjono As String Dim osat() As String Dim pvm As Date Dim merkinta As String mjono = "28.1.2008: Heipparallaa!" osat = Split(mjono, ": ") pvm = osat(0) merkinta = osat(1) MsgBox "Päivämäärä: " & pvm MsgBox "Merkintä: " & merkinta
Päivämääriä voi toki vertailla keskenään:
Dim pvm As Date pvm = InputBox("Kirjoita päivämäärä:") If pvm = "24.12.2008" Then MsgBox "Hyvää joulua!" End If
Kiitoksia kovasti molemmille auttajille, ymmärsipä tämmöinen aloittelijakin jotakin :)
tv. Tero Korhonen
Aihe on jo aika vanha, joten et voi enää vastata siihen.