Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: CommonDialog ja tallennuspolku

viljami [13.01.2007 00:16:45]

#

Eli ohjelma kysyy eka sammutuksessa Common dialogilla mihin tietty file tallennetaan, ja tulevaisuudessa ohjelma ei tule enää "koskaan" kysymään mihin tallennetaan, vaan eka tallennuksen yhteydessä saa ylös tallennuspolun, ja siitä eteenpäin tallentaa aina siihen samaan polkuun.

Pohjustus oli siinä. Ongelma on se, että palauttaako Common dialogi mistään takaisin tiedoston tallennus polkua, jota ohjelma voi sitten tulevaisuudessa käyttää tallentamaan tiedoston suoraan?

Quirzo [13.01.2007 08:29:09]

#

'''Ylaosassa
Dim TiedostoNimi as string
Dim Tallennettu as boolean
'''Sieltä mistä tallennetaan.
if Tallennettu = true then
   'Kutsutaan tallennnus funktiota
   TallennaTiedosto(Tiedostonimi)
else
   'Kysytään tiedostoa commandialogilla
   TiedostoNimi = Commandialog.FileName
   TallennaTiedosto(TiedostoNimi)
   Tallennettu = true
end if

Ton kohdan "'Kysytään tiedostoa commandialogilla" -jälkeen laitat tietty commandialog.showsave ja filterit jne.

viljami [14.01.2007 16:30:46]

#

Siis ohjelman pitää kysyä vain ekakerralla mihin tallennetaan, ja sen jälkeen sammutuksen yhteydessä tallentaa aina ekakerralla tallennetun tiedoston päälle, kysymättä käyttäjältä yhtään mitään, eli täysin automaattisesti...

...sain ohjelman toimimaan nyt suoraan tiedostoon kirjoittamisella, mutta käyttäjälle voisi olla fiksumpaa, kun saisi antaa tallennuspolun "graaffisesti" commonDialogilla, polun kirjoittamisen sijaan.

Blaze [14.01.2007 19:15:32]

#

if ekakerta then
  polku = commondialog
  tallenna konffifiluun/rekisteriin yms. (polku)
else
  polku = lataa konffifilusta/rekisteristä yms.
end if
tallenna tiedostoon(polku, data)

Antti Laaksonen [14.01.2007 21:03:46]

#

Miten "tallennuspolku" eroaa tiedoston koko nimestä? Jos tiedot tallennetaan myöhemmin aina samaan tiedostoon, niin silloinhan riittää, että ohjelmalla on muistissa ensimmäisellä kerralla valittu tiedoston nimi (johon siis sisältyy myös hakemisto-osa).

neau33 [14.01.2007 22:45:48]

#

Moikka viljami!

Tässä olis tämmönen hirvee mutta toimiva viritelmä...

'formin declarations osaan
Public polku_on_rekisterissä As Boolean

Private Sub Form_Load()
 polku_on_rekisterissä = GetSetting("MunKansio", "MunAlikansio", "MunAvain") <> ""
End Sub

Private Sub Form_Unload()

Select Case polku_on_rekisterissä

 Case True

  Open GetSetting("MunKansio", "MunAlikansio", "MunAvain") For Output As #1
  Print #1, Text1.Text 'tai mitä sit halutaankin tallentaa
  Close #1

 Case False

   CommonDialog1.DialogTitle = "Tallenna tiedosto"
   CommonDialog1.Filter = "Tekstitiedosto (*.txt)|*.txt"
   CommonDialog1.ShowSave

  Select Case CommonDialog1.Filename

   Case Is <> ""
    Open CommonDialog1.Filename For Output As #1
    Print #1, Text1.Text: Close #1
    SaveSetting "MunKansio", "MunAlikansio", "MunAvain", CommonDialog1.Filename

   Case Else
    MsgBox "Eipä tullut tallennetuksi mitään!"

  End Select

 End Select

End Sub

viljami [18.01.2007 23:29:39]

#

Tähän on nyt jäänyt vastaamatta... Eli sain tallennuksen toimimaan. Kiitos kuitenkin Nea, vaivan-näöstäsi.

Vastaus

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

Tietoa sivustosta