Mulla on kaksi eri OptionButton (sarjaa ensimmäinen Optkone1 ja Optkone2 sekä toisessa kehyksessä Opt1vari,Opt2varia ja Opt3varia). Miten saisin ne tallennettua teksititiedostoon? Eli muut arvot tallentuvat. mutta ei buttonien arvot. Miten pitäisi koodia muuttaa?
Private Sub mnuTallenna_Click() 'Määritellään muuttuja, mitä moduulia käytetään hyväksi Dim pussit As tiedot 'Virheen käsittely On Error GoTo tallennusvirhe 'Määritellään vuorovaikutuslomakkeen tallentaminen 'Oletuksena tekstitiedosto cmdialog.DefaultExt = "txt" 'Halutessa näyttää muut tallennus muodot cmdialog.Filter = "Normaali|*.txt|Data|*.dat|" ' 2 ... tallennus cmdialog.Action = 2 'Avaa tiedoston lukua varten Open cmdialog.FileName For Random As 1 Len = 200 'painovärien ja -koneiden tallennus ei monista eri yrityksistä huolimatta onnistunut pussit.pituus = txtPituus.Text pussit.leveys = txtLeveys.Text pussit.sivuvekki = txtSivuvekki.Text pussit.vahvuus = txtVahvuus.Text pussit.maara = txtmaara.Text pussit.khinta = txtkhinta.Text pussit.paino = paino.Text pussit.massa = massa.Text pussit.rhinta = txtrhinta.Text pussit.aika = txtAika.Text pussit.painohinta = txtpaino.Text pussit.mhinta = txtMhinta.Text pussit.rahti = txtRahti.Text pussit.kate = txtKate.Text pussit.alv = txtalv.Text pussit.yksi0 = txtyksi0.Text pussit.yksi22 = txtyksi22.Text pussit.mhinta22 = txthinta22.Text 'pussit.kone1 = Optkone1.Value 'pussit.kone2 = Optkone2.Value 'pussit.vari1 = Opt1vari.Value 'pussit.vari2 = Opt2varia.Value 'pussit.vari3 = Opt3varia.Value Put #1, 1, pussit 'Suljetaan tiedosto Close 1 'keskeuýttää aliohjelman Exit Sub 'Tallennusvirheen sattuessa keskeyttää aliohjelman tallennusvirhe: Exit Sub 'lopettaa aliohjelman End Sub
Ei kai ne tallennu, kun ne on kommentoitu pois ;)
Liekö sillä jotain tekemistä asian kanssa, että nuo optionboxien valuet ovat tyyppiä Boolean, kun taas nuo kaikki muut arvot näyttäisivät olevan Stringejä.
Miten tuo tiedot-tyyppi on määritelty?
Kommentit siksi, ettei se tallenta mitään, jos ne ovat... tyyppi on määritelty näin
Type tiedot pituus As Double leveys As Double sivuvekki As Double vahvuus As Double maara As Double khinta As Double paino As Double massa As Double rhinta As Double aika As Double painohinta As Double mhinta As Double rahti As Double kate As Double alv As Double yksi0 As Double yksi22 As Double mhinta22 As Double 'kone1 As Boolean 'kone2 As Boolean 'vari1 As Boolean 'vari2 As Boolean 'vari3 As Boolean End Type
No yks ois tietenki et teet function joka muuntaa boolean arvon stringiks
Public Function Muunna(arvo As Boolean) As String if(arvo)then return "true" else return "false" end if end function
ja tietysti lukiessa tarvitaan sama toisin päin
eli toi kone1, kone2.. jne olis Stringejä
ja funkkari toimis näin
pussit.kone1 = Muunna(Optkone1.Value)
Ei tosin ehkä mikään paras ratkasu :/
Omien kokemusteni mukaan boolean-tyyppiset muuttujat tallentuvat Put-käskyllä.
En nyt näe miten avaat tiedostot, mutta putkan opas antaa hieman erilaisen esimerkin Put-komennosta.
Sinulla: Put #1, 1, pussit Putkan oppaassa: Put #1, ,tiedot
En tiedä onko tuolla vaikutusta. Kai avaat tiedoston "For Binary"?
Miksi nuo boolean-rivit ovat kommentoituja?
Heikki kirjoitti:
En nyt näe miten avaat tiedostot
Onhan tuossa
Open cmdialog.FileName For Random As 1 Len = 200
Edit: Kyllä minun käsittääkseni Put kirjoittaa ja lukee kaikkia tyyppejä, ja homman pitäisi toimia ihan oikein kunhan tiedot luetaan ja tallennetaan samassa järjestyksessä.
Niin näyttää tallentavan! Mulla oli avauksessa kirjoitusvirhe: opt2varia.Value = pusiit.vari2. Kiitos!
Jos haluat välttyä vastaavalta jatkossa, niin kirjoita tästä lähtien joka koodin alkuun:
Option Explicit
Silloin VB huomaa kirjoitusvirheet ja ilmoittaa niistä.
Tuota käytettäessä täytyy tosin määritellä kaikki muuttujat ja taulukot, mutta se on ainakin minusta vain hyvä asia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.