Kun lataan Form1 alussa tiedostosta nimet.dat nimet taulukkoon, ja yritän käyttää niitä Form5 ListBoxissa, niin se herjaa ettei tietoja löydy. Tähän tapaan: (koodipätkä on Form1 General/Declaretions osiossa)
dim nimet(30) as string
open "nimet.dat" for output as #1
do until eof(1)
rivi=rivi+1
line input #1,nimet(rivi)
loop
(en muista käytinkö $ merkkiä)
tietääkeni jos dimmillä varaa koodin alussa niin ne pitäisi näkyä kaikkialla. Kokeilin myös Publicia mut se suuttu heti. Mikä on tämä koodin alku? en tiedä muuta paikkaa mihin kirjoittaa kuin formin koodit.
Mitä se tarkkaan ottaen herjaa?
Hmm, siis mitä ton sun koodis oli tarkoitus tehdä? Siis.. joo.. no mä tekasin tälläsen pätkän.. kun en nyt tiedä mitä sä haluat oikein "koodin alku".. ensinnäkin olikon ton tarkotus kirjottaa vai lukea siitä tiedostosta.. nimittäin musta sä halusit just inputtia etkä outputtia, joten vaihdoin outputin inputiksi. Taisin tajuta väärin koko ton selitykses, mutta jos tajusin oikein.. niin tossa on koodia..
Dim nimet(30) As String Private Sub Form_Load()Open App.Path & "/nimet.dat" For Input As #1 Do Until EOF(1) rivi = rivi + 1 Line Input #1, nimet(rivi) Loop End Sub
oho. tarkoitus oli että tiedosto avataan lukemista varten. Eli siis alunperin ongelma oli et kun lataa nimet taulukkoon Form1 alussa ja
yrittää käyttää niitä jossain toisessa formissa niin se objekti missä nimiä tarvitsen sanoo et siinä taulukossa ei ole tietoa *nimiä*
Annahan sitäkin koodia millä katot niitä nimiä taulukosta.. Ja annatko eksaktin virheilmoituksen mitä se antaa. Jos se valittaa et siinä ei oo tietoa, niin siinä ei ole tietoa. Depuggerilla voisit katsoa että missä kohdassa alkaa mennä pieleen. Siis ootko sä saanu ne nimet ladattua taulukkoon onnistuneesti. Onhan sulla tossa tiedoston (nimet.dat) lataamisessa oikea polku mistä löytyy ne nimet.
Musta tuntuu et jos olet tolla ekalla koodillas yrittäny ladata tietoa ohjelmaan, niin se on luultavasti saattanut pyyhkästä koko nimet.dat tyhjäksi, ei siis ihme jos tietoa ei löydy.
Jos haluat käyttää pelkästään formeja ohjelmassasi, määritä muuttujat niiden alussa käskyllä Public käskyn Dim sijasta. Sitten voit viitata niihin toisissa formeissa laittamalla mukaan formin nimen, esimerkiksi (Form2:ssa) Form1.nimet(0).
lainaus:
Musta tuntuu et jos olet tolla ekalla koodillas yrittäny ladata tietoa ohjelmaan, niin se on luultavasti saattanut pyyhkästä koko nimet.dat tyhjäksi, ei siis ihme jos tietoa ei löydy.
Kyllä (siiss siinä missä tiedot on otettu talteen) kaikki näkyy kuten pitääkin. Mutta toisissa Formeissa ei näy
ongelma onkin etten löydä muuta paikkaa kirjoittaa koodia kuin Formit.
lainaus:
ongelma onkin etten löydä muuta paikkaa kirjoittaa koodia kuin Formit.
Ongelmasi on nyt sellainen, että määrittelemäsi taulukko "nimet" on määritelty vain sen formin käyttöön jossa olet sen esitellyt Dim:miä käyttäen. Lisääpä siis projektiisi moduuli (Module) ja laita sinne ensimmäiseksi riviksi:
Public nimet(30) As String
Tämän jälkeen poistat "Dim nimet(30) As String" rivit kaikista formeista. Taulukon käyttö pysyy samana joten älä muuta sitä. Nyt sinulla on yleinen taulukko jota pystyy käyttämään mistä tahansa ohjelmaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.