Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Tiedoston merkkien ja rivien lukumäärän laskeminen?

Aki_M [02.09.2004 10:36:00]

#

Miten voi laskea tiedoston merkkien ja rivien lukumäärän? Olen kokeillut monella eri tavalla, mutta joku mättää, enkä keksi mikä.

nomic [02.09.2004 10:46:09]

#

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... :)

sooda [02.09.2004 11:08:49]

#

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 :)

Aki_M [02.09.2004 11:58:03]

#

Käytän vb:tä. Kiitos neuvoista :)

tejeez [02.09.2004 13:22:20]

#

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

nomic [02.09.2004 17:12:52]

#

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

Antti Laaksonen [02.09.2004 17:17:02]

#

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ä."

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta