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