Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: OptionButton arvot talteen VB:llä?

Sivun loppuun

Liisapu [10.11.2004 16:26:46]

#

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

Blaze [10.11.2004 16:42:35]

#

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?

Liisapu [10.11.2004 17:27:10]

#

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

maka78 [10.11.2004 17:51:26]

#

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 :/

Heikki [10.11.2004 18:17:56]

#

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?

hunajavohveli [10.11.2004 19:09:38]

#

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ä.

Liisapu [10.11.2004 21:47:52]

#

Niin näyttää tallentavan! Mulla oli avauksessa kirjoitusvirhe: opt2varia.Value = pusiit.vari2. Kiitos!

Antti Laaksonen [10.11.2004 21:57:12]

#

Jos haluat välttyä vastaavalta jatkossa, niin kirjoita tästä lähtien joka koodin alkuun:

Option Explicit

Silloin VB huomaa kirjoitusvirheet ja ilmoittaa niistä.

hunajavohveli [11.11.2004 19:45:06]

#

Tuota käytettäessä täytyy tosin määritellä kaikki muuttujat ja taulukot, mutta se on ainakin minusta vain hyvä asia.


Sivun alkuun

Vastaus

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

Tietoa sivustosta