Miten voi laskea tiedoston merkkien ja rivien lukumäärän? Olen kokeillut monella eri tavalla, mutta joku mättää, enkä keksi mikä.
kertoisitkos ensiksi onko käytössä qb vaiko vb?
yksi rumatapa ainaskin on vb:ssä tuot tiedoston text1-tekstikenttään sen jälkeen vaikkapa
for i = 1 to texti.maxlength kirjain = kirjain +1 next i msgbox kirjain & " merkkiä löytyy tekstistä!"
en ole kyllä ylläolevasta mutta se on nyt yksi esimerkki ainaskin...
mutta paremmat neuvotkoon... :)
No merkkien määrä tulee suoraan len(teksti)
ja tämä laskee rivinvaihtojen määrän:
For i = 1 to Len(teksti) if InStr(teksti, i, 2) = vbCrLf then rivit = rivit + 1 Next
Yksinkertaista :)
Käytän vb:tä. Kiitos neuvoista :)
nomic kirjoitti:
kertoisitkos ensiksi onko käytössä qb vaiko vb?
yksi rumatapa ainaskin on vb:ssä tuot tiedoston text1-tekstikenttään sen jälkeen vaikkapa
for i = 1 to texti.maxlength kirjain = kirjain +1 next i msgbox kirjain & " merkkiä löytyy tekstistä!"
Eh, miks ihmeessä se pitää johonkin tekstikenttään ladata?
Ja muutenkin aika jännästi tehty, mitä järkeä esim. tuossa for-silmukassa on? eikös esim. kirjain = kirjain + texti.maxlenght tekisi saman asian
tejeez kirjoitti:
Eh, miks ihmeessä se pitää johonkin tekstikenttään ladata?
Ja muutenkin aika jännästi tehty, mitä järkeä esim. tuossa for-silmukassa on? eikös esim. kirjain = kirjain + texti.maxlenght tekisi saman asian
Tuo nyt oli nopeasti kirjoitettu esimerkki. Ja tiedän, että erittäin huono tapa... ;) En vain ehtinyt miettiä tuota pahemmin, kun siinä samalla alkoikin jo tunti. :) (kauheet selitykset taas...)
Ja valitsin tekstikentän, hahmottamisen vuoksi, esimerkiksi:
Itse kun loin ekoja mappeja peleihin, ja mapit olivat tekstitiedostoina, niin aluksi tyrkkäsin sen mapin tekstikentään. Oli paljon helpompaa kontrolloida sitä kautta, että miten hommat toimivat, kuin luoda tiedosto. Sitten kun homma toimi, niin sama juttu, mutta tekstikenttä korvataan, tiedostonluku-rutiinilla.
Ja tuo miksi käytin for-silmukkaa? perustuu siihen, että yleensä olen tottunut, tuolla tapaa tekemään, esim jos halutaan lukea merkki merkiltä, että missä kohtaa on mikäkin. Näin voidaan pitää listaa; monta kirjainta on mitäkin ja missä kohtaa, sekä : if kirjain = "a" then msgbox "rivin sen ja sen, sekä se ja se kirjain on " & kirjain
;)
Ja kun kysyttiin, että halutaan tietää kirjainten määrän, niin tuo nyt tuli mieleeni. Tää on paha tapa, olla näin hätiköivä. :D
Tässä tulee toimiva koodinpätkä tekstitiedoston rivien ja merkkien määrän laskemiseen...
Dim tiedosto As String, rivi As String Dim rivit As Long, merkit As Long tiedosto = "c:\antti\testi.txt" Open tiedosto For Input As #1 While Not EOF(1) Line Input #1, rivi rivit = rivit + 1 merkit = merkit + Len(rivi) Wend Close #1 MsgBox "Tiedostossa on " & rivit & " riviä ja " & merkit & " merkkiä."
Aihe on jo aika vanha, joten et voi enää vastata siihen.