Minä en keksi tätä itse, joten toivottavasti te voitte auttaa. Eli miten kopioidaan *.txt tiedoston KOKO sisältö? Siis kaikki.
Siis haluatko kopioida tekstin toiseen tiedostoon vai...?
sanotaan vaikka näin: haluan avata teksti.txt tiedoston ja kopioida kaikki sen sisältämä teksti muuttujaan nimeltä teksti.
open "*.txt" for input as #1 input #1, n$ text1.text = n$
?
Mua on pitkään vaivannu, että mitä nuo $ hommelit on? Esim tuo n$. Hausta ei löydy yhtääm tulosta.
Dim tiedot As String Open konnakansio & ("\ruoka.txt") For Input As #10 Input #10, tiedot Close #10 Open konnakansio & ("\viikkoruoka.txt") For Output As #9 Print #9, tiedot Close #9
Ja tuohon "viikkoruoka.txt":een ei tule mitään. Mikä on vialla?
Tässä on esimerkki, joka lukee tiedostosta rivin kerrallaan ja lisää tiedot merkkijonomuuttujaan.
Dim teksti As String, rivi As String 'avataan tekstitiedosto lukumuodossa Open "teksti.txt" For Input As #1 'toistetaan tiedoston loppuun saakka Do Until EOF(1) 'luetaan seuraava rivi muuttujaan Line Input #1, rivi 'lisätään teksti-muuttujaan rivin sisältö ja välilyönti teksti = teksti & rivi & vbCrLf Loop 'suljetaan tiedosto Close #1
$-merkki muuttujan lopussa tarkoittaa, että muuttuja on merkkijono. Muita tunnuksia ovat % (Integer), & (Long), ! (Single), # (Double) ja @ (Currency). Visual Basicissa ei lopputunnisteita tavallisesti kannata käyttää, vaan parempi tapa on määritellä muuttujat Dim-lauseella ennen niiden käyttöä.
edit: Minusta tuo ohjelma näyttää ihan toimivalta, mutta se kopioi tiedostoon ainoastaan toisen tiedoston ensimmäisen rivin.
nyt siihen tulee: "Bad filename or number!" ja se keltainen hommeli on "Do Until Eof(1)" päällä. hmm..?
no jaa... nyt se toimii kun vaihdoin ton EOF:än 1 numeron kympiksi, mutta nyt se tulostaa vain ekan rivin!
Joo, vika on tällä kertaa minun koodissani. Vaihdapa silmukan viimeinen komento seuraavaan muotoon, jotta teksti-muuttujan aikaisempi sisältö säilyy tallessa:
teksti = teksti & rivi & vbCrLf
No Niin! Nyt alkoi lyyli kirjoittaa. Kiitoskia!
Tekstitiedoston voi lukea muuttujaan kokonaisuudessaan myös funktiolla Input$.
teksti = Input$(LOF(10),10) 'tiedosto avattu tiedostonumerolla 10
Aihe on jo aika vanha, joten et voi enää vastata siihen.