Ääkkösten luku?

Typerys...

Tein tässä ohjelman, mikä lukee txt-tiedostoa, ja tulostaa lukemansa tekstin Labeliin... Toimi muuten ihan kivasti, mutta ääkköset jäivät jonnekin, eli kun siellä tiedostossa luki: "Tämä on tekstiä", niin labeliin tulostuikin vain "Tm on teksti"

Tässä koodi:

Dim FILE_NAME As String = "c:\temp\test.txt"
Dim sr As StreamReader = File.OpenText(FILE_NAME)
Dim line As String
Dim Text As String
Do
line = sr.ReadLine()
Text = Text line
Loop Until line Is Nothing
sr.Close()
Label1.Text = Text

Tämä on sitten äkkiä kasattu testi ohjelma... Minä vaan opettelen perusteita.

Olisiko jossain kohtaa pitänyt määritellä ohjelma käyttämään jotain tiettyä koodisivua tms? Ja jos olisi, niin miten se olisi pitänyt tehdä?

8

1214

    Vastaukset 8

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Tommi

      Olisiko tuo tekstitiedosto kenties Unicode-muodossa ? Jos näin on, pitäisi tuo luettu puskuri käyttää jonkin UTF-konversion läpi ennen tulostamista.

      • Typerys...

        Tarkistin asiaa, olen juuri vaihtanut käyttöjärjestelmää, ja XP:n muistio olikin hieman monimutkaisempi kuin edellisissä...

        Tuo txt-tiedosto olikin tallennettu ANSI muotoisena...

        Tallensin tekstitiedoston uudestaan UTF-8 koodauksella ja nyt se toimii...

        En edes ajatellut, että yksinkertaisen txt-tiedoston voisi tallentaa useammalla eri tavalla... Kiitän avustasi.


      • Toinen Typerys
        Typerys... kirjoitti:

        Tarkistin asiaa, olen juuri vaihtanut käyttöjärjestelmää, ja XP:n muistio olikin hieman monimutkaisempi kuin edellisissä...

        Tuo txt-tiedosto olikin tallennettu ANSI muotoisena...

        Tallensin tekstitiedoston uudestaan UTF-8 koodauksella ja nyt se toimii...

        En edes ajatellut, että yksinkertaisen txt-tiedoston voisi tallentaa useammalla eri tavalla... Kiitän avustasi.

        Alle viikon olen itse VB:tä opiskellut, mutta eikö tällä tavalla olisi helpompi lukea tekstitiedostoja?


        Dim luettu As String

        Open "C:\tiedosto.txt" For Input As #1
        Input #1, luettu
        Close #1

        Label1.Caption = luettu


        Jos tämä tyyli ei käy, niin miksei?


      • Typerys...
        Toinen Typerys kirjoitti:

        Alle viikon olen itse VB:tä opiskellut, mutta eikö tällä tavalla olisi helpompi lukea tekstitiedostoja?


        Dim luettu As String

        Open "C:\tiedosto.txt" For Input As #1
        Input #1, luettu
        Close #1

        Label1.Caption = luettu


        Jos tämä tyyli ei käy, niin miksei?

        Toimiiko .NET versiossa?

        Juuri kokeilin, ja heitti vaikka mitä erroreita...


      • Toinen Typerys
        Typerys... kirjoitti:

        Toimiiko .NET versiossa?

        Juuri kokeilin, ja heitti vaikka mitä erroreita...

        .NETistä en tiedä mitään, VB6:lla kun itse ohjelmoin, ja siinäpä onkin vastaus kysymykseeni miksei koodi kelpaa ;)


      • Typerys...
        Toinen Typerys kirjoitti:

        Alle viikon olen itse VB:tä opiskellut, mutta eikö tällä tavalla olisi helpompi lukea tekstitiedostoja?


        Dim luettu As String

        Open "C:\tiedosto.txt" For Input As #1
        Input #1, luettu
        Close #1

        Label1.Caption = luettu


        Jos tämä tyyli ei käy, niin miksei?

        Dim FILE As String
        Dim Luettu As String
        Dim kaikki As String
        FILE = "c:\tiedosto.txt"
        FileOpen(1, FILE, OpenMode.Input)

        Do Until EOF(1)
        Input(1, Luettu)
        kaikki = kaikki Luettu
        Loop

        FileClose(1)
        Label1.Text = kaikki

        Lueskelin vähän input-komennosta, ja sain kasattua tuommoisen version... Tuo toimii .NETissä. Jos nyt jotain sattuu kiinnostamaan... Tosin ilmeisesti tuo taas vaatii sen että tiedoston koodaus on ANSI, eikä UTF-8 kuten tuolla toisella tavalla...


    • -jk-

      Tuonhan voi tehdä vaikkapa näin:
      Imports System.IO

      Dim Sr As StreamReader = New StreamReader("c:\temp\test.txt", System.Text.Encoding.Default)
      Dim line As String
      Dim Text As String
      Do
      line = Sr.ReadLine()
      Text = Text line
      Loop Until Sr.Peek = -1
      Sr.Close()
      Label1.Text = Text

      Parempi käyttää Peekiä kuin Nothingia, koska tyhjä stringi (eli jos on pelkkä rivinvihto) lopettaa tekstitiedoston lukemisen.

      • Typerys...

        Otsikossa olikin jo kaikki oleellinen... Eli kiitos.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Uskallanko laittaa sulle viestiä?

      Se viesti on tossa valmiina ja lähettämistä vaille valmis. Kun ei kauhee sti tunneta niin eipä sillä olisi niin väliä. S
      Ikävä
      60
      839
    2. Mikä tekee kaivatustasi

      Haluttavan?
      Ikävä
      34
      817
    3. Mies joka on oikeasti kiinnostunut

      Ja näkee sut pitkäaikaisena kumppanina, siirtää vaikka vuoria selvittääkseen asiat eikä ota pienintäkään riskiä menettää
      Ikävä
      125
      756
    4. Onko nyt kaikki asiat käyty läpi?

      Mun mielestä on👍
      Ikävä
      96
      726
    5. Vieläkin saat

      Sydämen tykyttämään. Vaikka emme näe
      Ikävä
      31
      622
    6. En tahallaan sua välttele...

      Olis niin kiva nähdä jossain muualla kuin kaupassa!
      Ikävä
      40
      547
    7. Rauha, sopiiko

      Ei häiritä enää toisiamme. Annetaan molemmille rauha unohtaa, pyydän tätä todella. Kiitos. Miehelle.
      Ikävä
      72
      536
    8. Lehtikankaan oppilas kuolema

      Mistä lie tyttöparka löytyny, mikä ajaa tekemään itsemurhan tuon ikäsenä 😞
      Kajaani
      10
      528
    9. 42
      519
    10. Ei siitä pääse yli, eikä ympäri!

      Pakko se on myöntää ja tunnustaa. Olisin halunnut p*nna sinua sydämeni kyllyydestä. Itseäni vanhemmalle naiselle
      Ikävä
      63
      509
    11. Kunnanhallitus

      Miten käy täällä vuosia tuomioita jakaneelle valittajalle, hovioikeus hylännyt kaikki syytteet.
      Puolanka
      24
      433
    12. Nyt kaatuu Kuisla

      Reima Kuisla hakee saneeraukseen – Joitakin velkoja on jo ulosotossa https://www.ilkkapohjalainen.fi/reima-kuisla-hakee
      Seinäjoki
      24
      430
    13. Kumpi tästä nyt

      Teki niin vaikeaa?
      Ikävä
      57
      429
    14. Pystyisitkö liikkumaan

      Tai tapailemaan kaivattuasi julkisesti?
      Ikävä
      45
      426
    15. Minkä kappaleen

      haluaisit soivan, kun astellaan alttarille?
      Ikävä
      36
      417
    16. Miesten (epä)viehättävyydestä kysymys

      Mieltä askarruttava asia, liki dilemma. Palstallahan jotkut miesoletetut usein toteavat, että kaikki naiset tavoittelev
      Sinkut
      105
      411
    17. Olit hyödytön.

      Mulle hyödytön..
      Ikävä
      72
      403
    18. 39
      403
    19. Vieläkö tykkäät

      Minusta niin paljon että olisit valmis?
      Ikävä
      35
      397
    20. Emme pääse koskaan

      Tästä. Sinä et suostu enkä minä suostu
      Ikävä
      38
      394
    Aihe