Missä piilee vika. Heittää ton open selectedfilen keltaseksi ja sonoo että Run-time error 72: Path not found. Josko vikaa löytyis.
Private Sub Command1_Click()
Dim solutxt, rivitxt As String
Dim rivino, ppos As Integer
rivino = 0
SelectedFile = File1.Path & "\" & File1.FileName
Open SelectedFile For Input As #1
Do While Not EOF(1)
Input #1, rivitxt
For x = 0 To Flex.Cols - 1
ppos = InStr(rivitxt, ";")
solutxt = Left(rivitxt, ppos - 1)
Flex.TextMatrix(rivino, x) = solutxt
rivitxt = Right(rivitxt, Len(rivitxt) - ppos)
Next x
rivino = rivino + 1
Loop
Close #1
End Sub
laita debuggaus ennen sitä herjariviä ja kato millanen polku siinä näkyy:
debug.print SelectedFile
Luulen, että sitä kautta selviää. Siellä dir1:ssa (sulla varmaan on formilla sellanen?) pitää muistaakseni olla jotain tällasta:
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Siellä on sellanen. Sillähäm mä sitä ihmettelenkin.
Kokeilitko sitä debug riviä? Mitä se näytti?
Sit ku yritin ajaa Command1:stä ja otin sit siit sen debug homman ni se heitti vaan
Open SelectedFile For Imput As #1
rivin keltaseksi. Mut sit ku pistää hiiren tohon SelectedFilen kohalle dobug modessa ni se näyttää kuitenkin et "SelectedFile= "C://testi.txt"
Mut sit ku selected filen tilalle heittää "C://testi.txt" niin se loadaa sen ihan oikein
Siis olihan sinulla siitä tiedostolistasta joku tiedosto valittuna kun testailit tuota?
Kannattaa myöskin tehdä joku tarkistus ihan vain käyttäjää varten tähän tyyliin:
If File1.FileName <> "" Then ' do teh stuff Else MsgBox "valitse tiedosto!" End If
Taitaa ongelma olla siinä, että tiedosto on suoraan c:n juuressa, jolloin kenoviiva tulee kahteen kertaan.
Pikakorjauksesta käynee tämä:
If File1.Path = "C:\" Then SelectedFile = File1.Path & File1.FileName Else SelectedFile = File1.Path & "\" & File1.FileName End If
Ei välttämättä kovin fiksu, jos on useampia asemia käytössä mutta pääset eteenpäin.
If Right$(File1.Path, 1) = "\" Then SelectedFile = File1.Path & File1.Filename Else SelectedFile = File1.Path & "\" & File1.Filename End If
Vois olla vähän fiksumpi
Fiksumpi on se. Miksi taala rightin jälkeen on?
Itse en kyllä saanut "Path not found"-virhettä aikaiseksi vaikka tiedoston nimessä olikin kaksi kenoviivaa.
Pistä vaikka koko sorsapaketti jonnekin niin ei tarvitse pelehtiä ja arvailla että mitä olet minnekin laittanut.
lainaus:
Miksi taala rightin jälkeen on?
Vanhemmissa Basiceissa (kuten QBasicissa) dollarimerkki on merkkijonon tunnus. Visual Basicissa merkkiä ei tarvitse kirjoittaa, mutta seuraavien funktioiden nimissä se on mahdollinen yhteensopivuussyistä:
Chr - Chr$
Format - Format$
LCase - LCase$
Left - Left$
LTrim - LTrim$
Mid - Mid$
Right - Right$
RTrim - RTrim$
Space - Space$
String - String$
Trim - Trim$
UCase - UCase$
Kiitos, tämä selvensi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.