Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Sana tiedostosta

Sivun loppuun

remontti-reiska [01.05.2004 21:38:19]

#

Hakua ja koodivinkkiä koetin, mutta ei toiminut. Eli pitäisi saada tulostettua muuttujan arvona oleva rivi .txt tiedostosta ja tulostettua sen rivin teksti. Antkaa koodipätkää.

tuomas [01.05.2004 21:42:28]

#

Kato jos saisit tuolta apua:

https://www.ohjelmointiputka.net/hak/?kieli­=Visual Basic&nimi=InStr

remontti-reiska [01.05.2004 21:47:15]

#

Ei tuo auta, sillä minun pitäisi hakea rivi tiedostosta.

tuomas [01.05.2004 21:52:14]

#

Kyllä täältä siihen löytyy ratkaisu:

Function HaeRivi(rivi, filu)

   On Error Resume Next 'jos tiedostoa ei ole
   Open filu For Input As #1 'avataan tiedosto
   If Err = 53 Then Exit Function 'jos tiedostoa ei ole niin poistutaan
   Do Until EOF(1) 'luupataan tiedoston loppuun asti
       r = r + 1 'lisätään rivicountteria yhdellä
       Line Input #1, teksti 'haetaan yksi rivi tiedostosta
       If r = rivi Then 'jos ollaan sillä rivillä mikä pitää hakea...
           HaeRivi = teksti 'niin kerrotaan oikea rivi
           Close 'ja suletaan tiedosto
           Exit Function 'ja poistutaan
       End If
   Loop 'seuraava rivi...
   Close 'sule tiedosto. jos tässä kohtaa ollaan niin haettava rivinumero on niin iso ettei sitä ole tiedostossa

End Function

eli tuo hakee tietyn rivin tiedostosta.
Löytyy myös koodivinkit -> tiedostot ja hakemistot -> tietyn rivin hakeminen tekstitiedostosta.

remontti-reiska [01.05.2004 22:40:56]

#

No tuossa on se ongelma, että miten tuon rivin pystyy tulostamaan.

sqwiik [01.05.2004 23:14:04]

#

Tulostaa tulostimella, vai? Käytä printer-objektia. Tulostus tapahtuu sitten Printer.Print ...

Aku2 [02.05.2004 00:18:01]

#

remontti-reiska kirjoitti:

No tuossa on se ongelma, että miten tuon rivin pystyy tulostamaan.

eikös se mene ihan text1.text = text

Kannattaa muuten kokeilla vaikka FSO:ta tuohon tekstin tallennukseen ja hakuun tekstitiedostosta.

https://www.ohjelmointiputka.net/koodivinkit/23662-vb6-tiedoston-hallintaa-fso-lla

hunajavohveli [02.05.2004 12:39:54]

#

remontti-reiska kirjoitti:

Ei tuo auta, sillä minun pitäisi hakea rivi tiedostosta.

Hakea rivi? No sehän onnistuu yksinkertaisesti:

Line Input #1, muuttuja

Tosin en usko, että tässä oli näin yksinkertaisesta asiasta kysymys, eli taisin käsittää jotain väärin.

remontti-reiska [02.05.2004 14:35:39]

#

Eli minulla on tiedosto, jossa on 5245 riviä. Arvon ensin muuttujan arvon ja haluaisin koodia, jolla pystyy hakemaan sen rivin, joka on muuttujan arvona ja asettaa se toiseen muuttujaan. Miten toimin?

sqwiik [02.05.2004 14:41:11]

#

Tuomaksen funktiohan tekee sen jo; haet tietyn rivin, ja funktio palauttaa sen rivin sisällön.

Dim muuttuja As String
  muuttuja = HaeRivi(Int(Rnd * 5245) + 1, "koe.txt")

Tuollainen kutsu sijoittaisi satunnaisen rivin tiedostosta muuttuja-stringiin.

hunajavohveli [02.05.2004 14:43:10]

#

Minä keksin tuohon vain kaksi tapaa.

1. Luet niitä rivejä siitä tiedostosta merkkijonomuuttujaan ja kasvatat joka rivin jälkeen toista muuttujaa yhdellä. Kun tuon muuttujan arvo vastaa haluamasi rivin numeroa, voit lopettaa silmukan, jolloin viimeksi luettu tieto jää merkkijonomuuttujaan.

2. Luet heti ohjelman alussa kaikki rivit merkkijonotaulukkoon, jota sitten varmaan osaatkin helposti käsitellä.

Edit: Mutta tuomaksella on tosiaan tuossa jo valmis funktio tuohon.

remontti-reiska [02.05.2004 15:42:17]

#

Nyt sain tuon toimimaan, mutta vielä on ongelmia. Miten saan etsittyä tiedostosta vain sellaisia rivejä, joissa on jotakin muuta kuin tyhjää?

tuomas [02.05.2004 16:28:11]

#

Dim muuttuja As String
  muuttuja = HaeRivi(Int(Rnd * 5245) + 1, "koe.txt")

Ja sitten vaan tarkastat onko muuttuja arvo "" eli tyhjä:

If Muuttuja = "" Then
muuttuja = HaeRivi(Int(Rnd * 5245) + 1, "koe.txt")
End IF

Ja niin edelleen...

remontti-reiska [02.05.2004 17:46:15]

#

Ei se ihan noin kyllä mene, mutta sain tuosta ainakin ja idean ja nyt se toimii.


Sivun alkuun

Vastaus

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

Tietoa sivustosta