19. tétel: Határérték fájlból

Feladat: Írjon egy programot szöveges környezetben, mely beolvas a VERCUKOR.TXT fájlból adatsorokat. 1 adatsor 1 sorból olvasható. Minden adatsor a következőket tartalmazza: mérés dátuma, a hét napja, napszak, mért érték (ponttal elválasztva). Az egyes adatok üres hellyel vannak elválasztva.
Írja ki a képernyőre, hogy hány mérés történt! Zárja ki az adatsorból a 15 feletti téves mérést! Írja ki a mért értékek közül a legkisebbet és a legnagyobbat is!
Feltételezheti, hogy a fájl létezik, legalább 1 sor van benne, maximum 100 adatsor várható. Az adatok valódiságát nem kell ellenőriznie. A működő programot és a kódot mutassa be tanárának!

Egy lehetséges megoldás Visual C# nyelven:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;            //Ez kell a fájlműveletekhez

namespace 19tetel
{
    class Program
    {
        struct meres       //Így könnyebb lesz eltárolni a beolvasott adatokat
        {
            public string datum;
            public string hetnapja;
            public string napszak;
            public float ertek;
        }
        
        static void Main(string[] args)
        {
            // 19. tétel: Határérték fájlból
            StreamReader bevisz = new StreamReader("VERCUKOR.TXT");
            meres[] adat = new meres[100];
            string s;               //Beolvasáshoz segédváltozó
            int szamol=0;           //Adatsorokat számolja meg. 
            string[] reszek = new string[6];        //Tördeléshez ideális segítség
            do
            {
                szamol++;
                s = bevisz.ReadLine();
                reszek = s.Split(' ');
                adat[szamol].datum = reszek[0];
                adat[szamol].hetnapja = reszek[1];
                adat[szamol].napszak = reszek[2];
                s = reszek[3];
                adat[szamol].ertek = float.Parse(s, System.Globalization.CultureInfo.InvariantCulture);
                if (adat[szamol].ertek>15)
                {
                    szamol--;       //Ezzel érvénytelenítjük a téves beolvasás miatti túl nagy értéket.
                }
            }   
            while (!bevisz.EndOfStream);
     bevisz.Close();
            Console.WriteLine("\nBeolvasott mérések száma: {0}",szamol);
            float minimum = adat[1].ertek;      //Minimális mért érték
            float maximum = adat[1].ertek;      //Maximális mért érték
            for (int i = 2; i <=szamol; i++)
            {
                if (adat[i].ertek<minimum)
                {
                    minimum = adat[i].ertek;
                }
                if (adat[i].ertek>maximum)
                {
                    maximum = adat[i].ertek;
                }
            }
            Console.WriteLine("Legkisebb mért érték : {0}", minimum);
            Console.WriteLine("Legnagyobb mért érték: {0}", maximum);
            Console.WriteLine("\n\nA program futása véget ért!");
        }
    }
}

A VERCUKOR.TXT fájl egy lehetséges tartalma:
Lásd a 18. tételnél!