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?
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.
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?
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?
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?
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.
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.