|
|
- ## 1 Tiedostonlukija
-
- **Tehtävä:**
-
- Luvun ensimmäisessä tehtävässä harjoitellaan oikeaoppista tiedoston avaamista lukemista varten, koska kyseinen kohta on tavallisin käyttäjän toimesta tapahtuvan virheilmoituksen tuottava toiminto.
-
- Tee siis ohjelma, joka kysyy käyttäjältä tiedostonnimeä muodossa "Anna luettavan tiedoston nimi:" ja yrittää avata kyseisen tiedoston. Luo ohjelmaan virheenkäsittelyrutiini siten, että virheellisen tiedoston antaminen ei aiheuta virhetilannetta, ja toteuta muu ohjelma siten, että tiedoston nimeä pyydetään niin monta kertaa, että kelvollinen tiedostonnimi annetaan. Jos tiedostonnimi on oikein, lue ja tulosta tiedoston sisältö ruudulle.
-
- Toimiessaan oikein ohjelma tulostaa seuraavaa:
-
- Example output:
-
- ```
- Anna luettavan tiedoston nimi:
- testii
- Tiedoston nimi ei kelpaa.
- Anna luettavan tiedoston nimi:
- 8-1_tiedosto2.txt
- Terve!
- Testii
- ```
-
- **Vastaus**
-
- ```
- #!/usr/bin/env ruby
- # coding: utf-8
-
- # Toteutus myös begin; rescue (retry) -rakenteella mahdollinen
-
- while true
- puts "Anna luettavan tiedoston nimi:"
- tiedosto = String(gets.chomp)
- if (File.readable?(tiedosto))
- print File.open(tiedosto, "r:UTF-8").read
- Process.exit(0)
- else
- puts "Tiedoston nimi ei kelpaa."
- end
- end
- ```
-
- Tiedosto 8-1_tiedosto2.txt:
-
- ```
- Terve!
- Testii
- ```
|