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?
'''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.
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.
if ekakerta then polku = commondialog tallenna konffifiluun/rekisteriin yms. (polku) else polku = lataa konffifilusta/rekisteristä yms. end if tallenna tiedostoon(polku, data)
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).
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 SubTähän on nyt jäänyt vastaamatta... Eli sain tallennuksen toimimaan. Kiitos kuitenkin Nea, vaivan-näöstäsi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.