Naloge - Tekstovne datoteke v C#

Naloge - Tekstovne datoteke v C#

Avtor: Gregor Šoln

1. Naloga

  • Sestavi funkcijo ustvariDatoteko, ki preko tipkovnice prebere ime datoteke in poljubno dolg niz. Nato ustvari datoteko z podanim imenom in vanjo zapiši vnešen niz.

Koraki reševanja

  • Prebremo ime datoteke
  • prebremo niz
  • Ustvarimo datoteko
  • vnesemo niz

Reševanje Koda

Reševanje

S pomočjo ukaza ReadLine preberemo ime datoteke in niz. Nato z ukazom StreamWriter odpremo podatkovni kanal in nato s funkcijo Write niz zapišemo na datoteko. S funkcijo Close pa zapremo podatkovni kanal.

Zapri

Koda


class Program
    {
        static void Main(string[] args)
             {
             ustvariDatoteko();
              }
        static void ustvariDatoteko()
        {
            Console.Write("Vnesi ime datoteke: ");
            String ime_datoteke = Console.ReadLine(); //preberemo ime datoteke

            Console.Write("Vnesi niz: ");
            String niz = Console.ReadLine(); //prebremo niz

            StreamWriter sw = new StreamWriter(ime_datoteke); //odpremo podatkovni kanal
            sw.Write(niz); //zapišemo na datoteko
            sw.Close();

        }
    }

Zapri

Video: 1. Naloga

2. Naloga

  • Sestavi funkcijo maleVelike, ki preko tipkovnice prebere ime tekstovne datoteke. Funkcija naj prebere vsebino datoteke in jo prepiše v drugo tekstovno datoteko, ki se naj imenuje kopija.txt. Vsebino prepišeš tako, da vse male znake pretvoriš v velike. Vsebino v prvi datoteki sestavljajo nizi sestavljeni iz samih malih črk - znakov.

Koraki reševanja

  • Preko tipkovnice preberemo ime datoteke
  • Vzpostavimo podatkovni kanal za branje in pisanje
  • Sproti beremo iz datoteke, vrstico za vrstico
  • nato sproti spreminjamo znake v nizih in jih zapisujemo na datoteko.
  • Ob koncu podatkovna kanala zapremo

Reševanje Koda

Reševanje

Najprej z ukazom ReadLine preberemo ime tekstovne datoteke. Nato z ukazoma StreamReader in StreamWriter omogočimo podatkovni kanal za branje in pisanje na datoteko. Iz datoteke beremo vrstico za vrstico in ji sproti z ukazom toUpperCase spreminjamo male črke v velike. Vsako prebrano vrstico, ki smo ji spremenili črke jo sproti tudi zapišemo v novo datoteko.

Zapri

Koda


    class maleVelike
    {
        static void Main(string[] args)
        {
            malevelike()
        }
        static void malevelike()
        {
            Console.Write("Vnesi ime datoteke: ");
            String ime_datoteke = Console.ReadLine(); //preberemo ime datoteke

            StreamReader sr = new StreamReader(ime_datoteke); //podatkovni kanala za branje in pisanje
            StreamWriter sw = new StreamWriter("kopija.txt");

            String vsebina = sr.ReadToEnd(); //vso vsebino preberemo na enkrat
            sw.WriteLine(vsebina.ToUpper()); //ji spremenimo znake in zapišemo na datoteko

            sr.Close();
            sw.Close();
        }
    }

Zapri

Kviz

  • Kako vzpostavimo podatkovni kanal za branje tekstovne datoteke?
    Odgovor
  • S katerim ukazom v celoti prebremo vsebino datoteke?
    Odgovor
  • Kako ugotovimo v katerem direktoriju se trenutno nahajamo?
    Odgovor
  • Kako napovemo, da gre za dodajanje vsebine na datoteko?
    Odgovor
  • Kateri modul omogoča delo z tekstovnimi datotekami?
    Odgovor
  • Kako ugotovimo v katerem direktoriju se nahajamo?
    Odgovor

Podrobnosti

Z ukazom StreamReader vzpostavimo podatkovni kanal, ki omgoča branje iz datoteke.

StreamReader sr = new StreamReader(ime_datoteke);

Zapri

Podrobnosti

Ukaz ReadToEnd omgoča, da vsebino datoteke prebremo v enem samem koraku. String vsebina = sr.ReadToEnd();

Zapri

Podrobnosti

Deklaracija tabele podatkovnega tipa integer.
int[] ime_tabele = new int[dolžina_tabele];

Zapri

Podrobnosti

Če želimo na datoteko dodati vsebino, pri tem pa želimo prvotno vsebino obdržati, uporabimo dodaten parameter, pri vzpostavljanju podatkovnega kanala. Če ima dodaten parameter vrednost true pomeni, da se bo vsebina zapisovala na konec datoteke. StreamWriter sw = new StreamWriter(ime_datoteke, true);

Zapri

Podrobnosti

Vključitev modula System.IO omogoča delo z tekstovnimi datotekami. Module zapišemo na začetek datoteke. Zapišemo jih z ukazom using.

using System.IO;

Zapri

Podrobnosti

Če želimo ugotoviti v katerem direktoriju se trenutno nahajamo uporabimo ukaz GetCurentDirectory().

File.GetCurentDirectory();

Zapri

Dodatne naloge

3. Naloga

Sestavi funkcijo dvaPresledka, ki preko tipkovnice prebre 5 nizov. Nize nato po vrsti zapiši na datoteko tako, da med vsak niz vrineš dva presledka.

4. Naloga

Vsebina tekstovne datoteke je:
3+4
1-4
4*4
1/8

Sestavi funkcijo izracunaj, ki prebre vrstico eno za drugo in izračuna izraz, ki je zapisan. Pojavijo se lahko le operacije: seštevanja, odštevanja, množenja in deljenja. Namig: uporabi funkcijo Split.

5. Naloga

V datoteki so zapisane izmerjene vrednosti temperature. Zapisane so vse v eni vrstici in med njimi je en presledek. Sestavi funkcijo temperatura, ki poišče temperaturo, ki najbolj odstopa od povprečne izmerjene temperature.

Vsebina datoteke:

12 24 21 23  23 24 25 23 22 23 19 18 16 19

6. Naloga

Sestavi funkcijo obrni, ki iz datoteke prebre vsebino in jo nato od zadaj naprej zapiši nazaj na isto datoteko. Prvotno vsebino izbriši. Primer:
Vsebina prej: n a l o g e
Vsebina potem: e g o l a n

Vsebina datoteke naj bo poljubna.

7. Naloga

Sestavi funkcijo, ki prejme tri prametre: ime datoteke, število nizov in maksimalno dolžino niza. Nato generiraj nize, ki vsebujejo naključne ASCII znake. Vsak niz je lahko dolg največ toliko, kolikor je maksimalna dolžina niza, ki jo prejmemo kot parameter. Število nizov pa določa, koliko nizov se lahko generira. Nizi se naj sproti zapisujejo na datoteko. Vsebino datoteke na koncu izpiši tako, da izpišeš vsako vrstico posebej.

0%
0%