Mikähän on vikana kun valittaa File already open?
mulla on form1 ja form2. Form2 sisältää combon jossa näkyy eräässä txt tiedostossa olevat tekstit. Kun ohjelma käynnistyy ja nappia painamalla form2 aukeaa, niin tekstit näkyvät combossa, aivan kuten pitääkin. Kun fomr2 suljetaan ja avataan uudelleen (siis sulkematta koko ohjelmaa) tulee herjanheitto File already open! Kun äsken luettiin form2:ssa sen tekstitiedoston sisältö, niin miksei se sulkeutunut ja näinollen sitä ei voi enää käyttää sammuttamatta koko ohjelmaa.
Dim osotteet As String Open "osote.txt" For Input As #1 While Not EOF(1) Line Input #1, osotteet Combo1.AddItem osotteet Wend Close #1
Eikö tossa "Close #1" pitäs sulkea se tiedosto ja kun taas form2 ladataan niin tiedosto aukeaisi. Missähän vois olla vika?
kiitos paljon avusta, tästähän on ollut palion hyötyä!
Avaatko missään muualla tiedostoa? Tuossa koodinpätkässä ei ole virhettä.
En avaa samalla aikaa, mutta hetken kuluttua avaan ks. tiedoston uudelleen. Myös seuraavassa on jokin ongelma:
Dim tiedosto As String
If Command <> "" Then If Left(Command, 1) = """" Then tiedosto = Mid(Command, 2, Len(Command) - 2) Else tiedosto = Command End If rt1.FileName = tiedosto End If Dim rivi As String Open "tiedot.txt" For Input As #1 While Not EOF(1) Line Input #1, rivi Combo2.AddItem rivi Wend Close #1
Kun ohjelma käynnistetään sellaisenaan, combo2:seen ilmestyy tiedot.txt sisältö. Mutta jos ohjelman exen päälle pudottaa esimerkiksi jonkin rtf tiedoston, tiedosto avautuu ohjelmassa olevassa rtfboksissa, niin kuin pitääkin, mutta nyt se herjaa ettei tiedostoa tiedot.txt löydetä! Mikähän voi olla vikana? olen yrittäny ratkasta ongelmaa jo melkein hermojen menetys vaiheeseen saakka.
Koodi-tageja saa käyttää...
Kun nyt kerran koodissasi availet useita eri txt-tiedostoja, niin noiden Open...For...As #n yhteyteen voisit laittaa FreeFile-funktion, joka etsii seuraavan vapaan tiedostonumeron (File number). Tuo "File already Open"-virhe tulee juuri siitä, että yritätä avata samalle File numberille uuden tiedoston kun se on vielä auki/käytössä.
Seuraavassa esim. FreeFile:n käytöstä:
Dim FileNro As Integer Dim rivi As String FileNro = FreeFile Open "tiedot.txt" For Input As #FileNro While Not EOF(FileNro) Line Input #FileNro, rivi Combo2.AddItem rivi Wend Close #FileNro
Aihe on jo aika vanha, joten et voi enää vastata siihen.