Private Sub Command1_Click() Open "C:\Polku.txt" For Output As #1 Print #1, Text1.Text Close #1 End Sub
onko koodissa jotain merkittävää vikaa, yritän saada text1 tallentumaan polku.txt:hen mutta herjaa run-time eror 54 mikä koodissa on vikana
jaha ja heti otsikkoon typoja (mod. korjasi)
Minulla tuo koodi toimii moitteettomasti.
Onko ohjelmassa muuta koodia? Tuleeko virhe juuri tuosta kohdasta? Pystytkö kirjoittamaan toisennimiseen tiedostoon?
Private Sub Command1_Click() Open "C:\Polku.txt" For Output As #1 Print #1, Text1.Text Close #1 End Sub Private Sub Command2_Click() polku = Text1 Shell (polku) End Sub Private Sub Form_Load() Open "C:\Polku.txt" For Input As #1 muuttuja = Input(LOF(1), #1) If muutuja = Empty Then GoTo loppu Else Shell (muuttuja) loppu: Close #1 End Sub Private Sub lopeta_Click() End End Sub
siinä koodii kokonaisuudesaan debug näytti ainakin juuri tuota kohtaa
ongelma ratekesi tuo toinen avaus kooodi sotki sitä, mutta miksi senhän piti olla suljettu, mutta nyt se ei silti suorita shell komentoa jos teksti tiedostossa on polku.
Hah olen minä kyllä aika haka kirjoittamaan muutuja -> muuttuja
Nyt ilmeni taas ongelma. ohjelma tallentaa kyllä tekstin , mutta tekee samalla rivin vaihdon. kuinka sen saisi estettyä
Erkhi kirjoitti:
Hah olen minä kyllä aika haka kirjoittamaan muutuja -> muuttuja
Tämän takia kannattaakin kirjoittaa jokaisen tiedoston alkuun Option Explicit, jolloin VB-kääntäjä pakottaa määrittelemään kaikki muuttujat ja antaa virhettä väärinkirjotetuista.
Erkhi kirjoitti:
If muutuja = Empty Then GoTo loppu Else Shell (muuttuja) loppu:
Eikös näin olis siistimpi, pistää ilkeästi silmään tuo turha Goto:
If muuttuja <> Empty Then Shell (muuttuja)
Ennen tiedoston avaamista on hyvä tapa käyttää määritelmää
F=FreeFile '<<<<< Open "C:\Tiedosto.txt" For Input As #F ' ... Close #F
Erkhi kirjoitti:
Nyt ilmeni taas ongelma. ohjelma tallentaa kyllä tekstin , mutta tekee samalla rivin vaihdon. kuinka sen saisi estettyä
Rivinvaihdon voi estää lisäämällä puolipisteen kirjoituskäskyn perään.
Print #1, Text1.Text;
JoreSoft kirjoitti:
Ennen tiedoston avaamista on hyvä tapa käyttää määritelmää
F=FreeFile '<<<<< Open "C:\Tiedosto.txt" For Input As #F ' ... Close #F
Perustele miksi? Eli minkätakia?
Private Sub Command2_Click() polku = Text1 Shell (polku) End Sub
Text1 => Text1.text ?
jukuri kirjoitti:
Perustele miksi? Eli minkätakia?
Tuo on ihan kätevä siinä tapauksessa, että availee useampia tiedostoja yhtä aikaa. Jos kuitenkin vain yhtä kerrallaan, niin tuo ei ole pakollinen.
Quirzo kirjoitti:
Text1 => Text1.text ?
VB:ssä luokilla voi olla oletusominaisuus (default property), joka tekstilaatikolla on juurikin tuo Text-ominaisuus. Alkuperäinenkin koodi siis toimii, itse oon selkeyden vuoks tavannu käyttää aina noita pitkiä muotoja.
Ai, selvä en tiennytkään :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.