13. tétel: Sorba rendezés fájlból

Feladat: Írjon egy programot szöveges környezetben, mely beolvas az ADAT.TXT fájlból max. 100 egész számot. Csak a nem 0 számokkal foglalkozzon (a 0-kat nem kell eltárolni)! Írja ki a képernyőre, hogy hány számot talált, majd rendezze növekvő sorba a beolvasott számokat!
Feltételezheti, hogy a fájl létezik, legalább 1 szám van benne és az adatok csak egész számokat tartalmazhatnak, valamint minden egyes szám új sorban van. A beolvasott szám is biztosan egész lesz. 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 13tetel
{
    class Program
    {
        static void Main(string[] args)
        {
            //13. tétel: Sorba rendezés fájlból
            StreamReader bevisz = new StreamReader("ADAT.TXT");
            int[] szam = new int[100];      //Ebben tároljuk el a beolvasott számokat
            int darab = 0;                  //Beolvasott számok darabszáma
            string s;               //Beolvasáshoz segédváltozó
            do
            {
                s = bevisz.ReadLine();
                szam[darab] = Convert.ToInt32(s);
                if (szam[darab] != 0)
                {
                    darab++;        //Csak akkor kell eltárolni, ha nem 0 a szám.
                }
            }
            while (!bevisz.EndOfStream);
            bevisz.Close();             //Fájl bezárása
            Console.WriteLine("Beolvasott, nem 0 számok: {0} darab.\n",darab);
            
            Array.Sort(szam);       //Növekvő sorba rendezi. 
            foreach (var i in szam)
            {
                if (i != 0)
                {
                    Console.Write("{0} ", i);
                }
            }
            Console.WriteLine("\n\nA program futása véget ért!");
        }
    }
}

Az ADAT.TXT fájl egy lehetséges tartalma:
Lásd az 5. tételnél!