Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Tiedostosta useampi sarake (VB6)

Star3 [02.06.2004 11:28:37]

#

Tiedostosta pitäisi saada useampi sarake tulostettua. Alla on koodin pätkä, josta näkee kuinka olen määritellyt sarakkeet ja kuinka saan tulostettua yhden sarakkeen.

Dim Luvut(50, 13) As Integer
Dim rivi As String

Private Sub Command1_Click()
Dim f As Integer 'Tiedoston tunnus
f = FreeFile

Open "SIVU01.txt" For Input As #f
Dim sana As String
Dim i As Integer

'sarakkeitten määrittely
Input #f, rivi
    For i = 0 To 49
    Input #f, rivi
     sana = Mid(rivi, 14, 3)
    Luvut(i, 1) = Val(sana)
    sana = Mid(rivi, 21, 3)
    Luvut(i, 2) = Val(sana)
    sana = Mid(rivi, 28, 3)
    Luvut(i, 3) = Val(sana)
    sana = Mid(rivi, 35, 3)
    Luvut(i, 4) = Val(sana)
    sana = Mid(rivi, 42, 3)
    Luvut(i, 5) = Val(sana)
    sana = Mid(rivi, 50, 3)
    Luvut(i, 6) = Val(sana)
    sana = Mid(rivi, 57, 3)
    Luvut(i, 7) = Val(sana)
    sana = Mid(rivi, 64, 3)
    Luvut(i, 8) = Val(sana)
    sana = Mid(rivi, 71, 3)
    Luvut(i, 9) = Val(sana)

    Next

For i = 0 To 49
Text1.Text = Text1.Text & Luvut(i, 1) & vbCrLf
Next

Close #f
End Sub

Mikä avuksi?

Antti Laaksonen [02.06.2004 12:12:17]

#

Näköjään luet sarakkeet taulukkoon, jonka ensimmäinen indeksi kuvastaa riviä ja toinen saraketta. Kirjoita siis tekstikenttään joka riviä kohden kaikki sarakkeet 1 - 9:

Text1.Text = Text1.Text & Luvut(i, 1) & Luvut(i, 2) & [tähän muut sarakkeet] & Luvut(i, 9) & vbCrLf

Jos pelkästään on tarkoitus näyttää sarakkeet tekstilaatikossa, niiden tallentaminen välillä taulukkoon muuten lienee turhaa.

Star3 [02.06.2004 12:25:24]

#

Tuota ajattelin itsekin, mutta mietin että onko yksinkertaisempaa vaihtoehtoa olemassa? Tuo toimii, mutta tulostaa rivin tiedot yhteen ilman väliä. Rivit kyllä tulostuvat oikein. Olisiko siihen välien saamiseen mikä avuksi?

sqwiik [02.06.2004 12:40:57]

#

Laita " " eli tyhjä space välimerkiksi, esim

Text1.Text = Text1.Text & Luvut(i, 1) & " " & Luvut(i, 2)  & " " & [tähän muut sarakkeet]  & " " & Luvut(i, 9) & vbCrLf

..vai?

Star3 [02.06.2004 12:58:26]

#

Nyt alkaa näyttämään jo oikealta. Eli yksinkertaisempaa keinoa ei ole tulostamiseen? Tuo on melkoinen koodi.
Uusi ongelma ilmestyi. Tiedostossa alle 10 luvuissa on nolla edessä(03) ja lomakkeelle tulostuu ilman nollaa(3). Tästä seuraa etteivät sarakkeet ole kohdallaan ja näin ollen vaikea lukea. Onko jotain keinoa saada tulostukseen myös nolla?

sqwiik [02.06.2004 13:11:04]

#

Se nollan uupuminen tulee tuosta val-funktiosta. Eikö olisi helpompaa tulostaa luvut nollineen suoraan tiedostosta, käyttämättä taulukkoa? Tai käytä string-taulukkoa int:n sijaan.

Star3 [02.06.2004 13:19:36]

#

No nyt toimii mainiosti :)
Kiitoksia erittäin paljon kummallekin! Aamupäivä tuossa meni pohdiskellessa parempaa vaihtoehtoa, mutta ilmeisemmin sitä ei ole. Kauan kun miettii unohtuu alkuperäinen ratkaisu ja jää junnaamaan paikoilleen.

Vastaus

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

Tietoa sivustosta