Ejemplo n.º 1
0
        /// <summary>
        /// Sudaro fragmentus ir juos įdeda į ilgiausių fragmentų konteinerį
        /// </summary>
        /// <param name="ZodziaiSuSkyrikliaisPirmas">Pirmo failo žodžiai su skyrikliais</param>
        /// <param name="ZodziaiSuSkyrikliaisAntras">Antro failo žodžiai su skyrikliais</param>
        /// <returns>Ilgiausių fragmentų konteinerį</returns>
        FragmentuKonteineris IlgiausiFragmentai(ZodziuKonteineris ZodziaiSuSkyrikliaisPirmas, ZodziuKonteineris ZodziaiSuSkyrikliaisAntras)
        {
            FragmentuKonteineris Fragmentai = new FragmentuKonteineris();

            for (int i = 0; i < ZodziaiSuSkyrikliaisPirmas.Kiekis; i++)
            {
                for (int g = 0; g < ZodziaiSuSkyrikliaisAntras.Kiekis; g++)
                {
                    EilutesNumeriuKonteineris Numeriai = new EilutesNumeriuKonteineris();
                    if (ZodziaiSuSkyrikliaisPirmas.PaimtiZodi(i).Pavadinimas.ToLower() == ZodziaiSuSkyrikliaisAntras.PaimtiZodi(g).Pavadinimas.ToLower())
                    {
                        StringBuilder nauja = new StringBuilder();

                        int o = 1;
                        nauja.Append(ZodziaiSuSkyrikliaisPirmas.PaimtiZodi(i).Pavadinimas.ToLower());
                        nauja.Append(" ");

                        Numeriai.IdetiNumeri(ZodziaiSuSkyrikliaisPirmas.PaimtiZodi(i).Eilute);

                        Numeriai.IdetiNumeri(ZodziaiSuSkyrikliaisAntras.PaimtiZodi(g).Eilute);

                        while (o > 0)
                        {
                            if (i + o >= ZodziaiSuSkyrikliaisPirmas.Kiekis || g + o >= ZodziaiSuSkyrikliaisAntras.Kiekis)
                            {
                                break;
                            }
                            if (ZodziaiSuSkyrikliaisPirmas.PaimtiZodi(i + o).Pavadinimas.ToLower() == ZodziaiSuSkyrikliaisAntras.PaimtiZodi(g + o).Pavadinimas.ToLower())
                            {
                                nauja.Append(ZodziaiSuSkyrikliaisPirmas.PaimtiZodi(i + o).Pavadinimas.ToLower());

                                Numeriai.IdetiNumeri(ZodziaiSuSkyrikliaisPirmas.PaimtiZodi(i + o).Eilute);
                                Numeriai.IdetiNumeri(ZodziaiSuSkyrikliaisAntras.PaimtiZodi(g + o).Eilute);
                                nauja.Append(" ");
                                o++;
                            }
                            else
                            {
                                o = 0;
                            }
                        }


                        if (nauja.Length == IlgiausioFragmentoElementuSkaicius(ZodziaiSuSkyrikliaisPirmas, ZodziaiSuSkyrikliaisAntras))
                        {
                            Fragmentai.IdetiFragmenta(nauja.ToString());
                            Fragmentai.IdetiNumerius(Numeriai);
                        }
                    }
                }
            }
            return(Fragmentai);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Spasudina ilgiausius fragmentus faile
 /// </summary>
 /// <param name="IlgiausiFragmentai">Ilgiausių fragmentų konteineris</param>
 /// <param name="fv">Failas, į kurį rašys</param>
 /// <param name="ZodziaiSuSkyrikliaisPirmas">Pirmo failo žodžiai su skyrikliais</param>
 /// <param name="ZodziaiSuSkyrikliaisAntras">Antro failo žodžiai su skyrikliais</param>
 void IlgiausiuFragmentuSpausdinimasFaile(FragmentuKonteineris IlgiausiFragmentai, string fv, ZodziuKonteineris ZodziaiSuSkyrikliaisPirmas, ZodziuKonteineris ZodziaiSuSkyrikliaisAntras)
 {
     using (StreamWriter writer = new StreamWriter(fv, true, Encoding.UTF8))
     {
         if (IlgiausiFragmentai.Count == 0)
         {
             writer.WriteLine("Duomenų failai tušti arba tekstuose nėra vienodų fragmentų");
         }
         else
         {
             writer.WriteLine("Ilgiausi ({0} simbolių), sudaryti iš žodžių fragentai:", IlgiausioFragmentoElementuSkaicius(ZodziaiSuSkyrikliaisPirmas, ZodziaiSuSkyrikliaisAntras));
             for (int i = 0; i < IlgiausiFragmentai.Count; i++)
             {
                 writer.WriteLine(IlgiausiFragmentai.PaimtiFragmenta(i));
                 writer.WriteLine("Šis fragmentas pirmame duomenų faile yra tokiose eilutėse:");
                 for (int g = 0; g < IlgiausiFragmentai.Numeriai[i].Count; g = g + 2)
                 {
                     int yra = 0;
                     for (int h = g + 2; h < IlgiausiFragmentai.Numeriai[i].Count; h = h + 2)
                     {
                         if (IlgiausiFragmentai.Numeriai[i].PaimtiNumeri(g) == IlgiausiFragmentai.Numeriai[i].PaimtiNumeri(h))
                         {
                             yra = 1;
                         }
                     }
                     if (yra == 0)
                     {
                         writer.WriteLine(IlgiausiFragmentai.Numeriai[i].PaimtiNumeri(g));
                     }
                 }
                 writer.WriteLine("Šis fragmentas antrame duomenų faile yra tokiose eilutėse:");
                 for (int g = 1; g < IlgiausiFragmentai.Numeriai[i].Count; g = g + 2)
                 {
                     int yra = 0;
                     for (int h = g + 2; h < IlgiausiFragmentai.Numeriai[i].Count; h = h + 2)
                     {
                         if (IlgiausiFragmentai.Numeriai[i].PaimtiNumeri(g) == IlgiausiFragmentai.Numeriai[i].PaimtiNumeri(h))
                         {
                             yra = 1;
                         }
                     }
                     if (yra == 0)
                     {
                         writer.WriteLine(IlgiausiFragmentai.Numeriai[i].PaimtiNumeri(g));
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 3
0
        public const int IlgiausiuZodziuDydis = 10;     //Masyvo, kuriame talpinami ilgiausi žodžiai, dydis
        static void Main(string[] args)
        {
            const string CFd  = "..\\..\\Knyga1.txt";    //Pirmas duomenų failas
            const string CFd2 = "..\\..\\Knyga2.txt";    //Antras duomenų failas
            const string CFr  = "..\\..\\Rodikliai.txt"; //Pirmas rezultatų failas
            const string CFr2 = "..\\..\\ManoKnyga.txt"; //Antras rezultatų faials

            //Patikrina, ar toks rezultatų failas jau yra, jeigu taip, tada jį ištrina
            if (File.Exists(CFr))
            {
                File.Delete(CFr);
            }

            Console.OutputEncoding = Encoding.UTF8;                                         //Konsolėje rašomos lietuviškos raidės
            Program p = new Program();                                                      //Sukuriamas Program klasės objektas

            char[] skyrikliai = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t', '"' }; //Skyriklių aibė

            //Sukuriami žodžių konteinerio obejktai, kuriuose talpinami žodžiai be skyriklių, ir apskaičiuojami pasikartojimai
            ZodziuKonteineris PirmosKnygosZodziai = new ZodziuKonteineris(VisuZodziuDydis);
            ZodziuKonteineris AntrosKnygosZodziai = new ZodziuKonteineris(VisuZodziuDydis);

            //Sukuriami žodžių konteinerio objektai, kuriuose talpinami žodžiai su skyrikliais tokia eilės tvarka, kokia yra tekste
            ZodziuKonteineris ZodziaiSuSkyrikliaisPirmas = new ZodziuKonteineris(VisuZodziuDydis);
            ZodziuKonteineris ZodziaiSuSkyrikliaisAntras = new ZodziuKonteineris(VisuZodziuDydis);

            //Apdoroja failus, ir sudeda žodžius į atitinkamus konteinerius
            p.Apdorojimas(CFd, ref PirmosKnygosZodziai, skyrikliai, ref ZodziaiSuSkyrikliaisPirmas);
            p.Apdorojimas(CFd2, ref AntrosKnygosZodziai, skyrikliai, ref ZodziaiSuSkyrikliaisAntras);


            ZodziuKonteineris IlgiausiZodziai = new ZodziuKonteineris(IlgiausiuZodziuDydis); //Žodžių konteineris, talpinantis ilgiausius žodžius

            IlgiausiZodziai = p.IlgiausiZodziai(PirmosKnygosZodziai, AntrosKnygosZodziai);   //Surandami ilgiausi žodžiai

            //Patikrina, ar yra ilgiausių žodžių, jeigu taip, tada juos atspausdina
            if (IlgiausiZodziai.Kiekis == 0)
            {
                Console.WriteLine("Duomenų failai tušti arba antrame tekste yra visi pirmo failo ilgiausi žodžiai");
                p.IlgiausiuZodziuSpausdinimasFaile(IlgiausiZodziai, CFr, PirmosKnygosZodziai);
            }
            else
            {
                p.IlgiausiuZodziuSpausdinimasFaile(IlgiausiZodziai, CFr, PirmosKnygosZodziai);
            }


            FragmentuKonteineris Fragmentai = new FragmentuKonteineris();                              //Fragmentų konteinerio objektas

            Fragmentai = p.IlgiausiFragmentai(ZodziaiSuSkyrikliaisPirmas, ZodziaiSuSkyrikliaisAntras); //Surandami ilgiausi fragmentai

            //Patikrina ar yra ilgiausių fragmentų, jeigu taip, tada juos atspausdina kartu su eilučių numeriais
            if (Fragmentai.Count == 0)
            {
                Console.WriteLine("Duomenų failai tušti arba tekstuose nėra vienodų fragmentų");
                p.IlgiausiuFragmentuSpausdinimasFaile(Fragmentai, CFr, ZodziaiSuSkyrikliaisPirmas, ZodziaiSuSkyrikliaisAntras);
            }
            else
            {
                p.IlgiausiuFragmentuSpausdinimasFaile(Fragmentai, CFr, ZodziaiSuSkyrikliaisPirmas, ZodziaiSuSkyrikliaisAntras);
            }


            StringBuilder Tekstas = new StringBuilder();                                            //Bendro teksto objektas

            Tekstas = p.TekstoPertvarkymas(ZodziaiSuSkyrikliaisPirmas, ZodziaiSuSkyrikliaisAntras); //Pagal taisykles sudaro vieną tekstą


            //Patikrina ar tekstas yra, jeigu taip, tada jį atspausdina
            if (Tekstas.Length == 0)
            {
                Console.WriteLine("Duomenų failuose nėra");
                p.PertvarkytoTekstoSpausdinimasFaile(CFr2, ZodziaiSuSkyrikliaisPirmas, ZodziaiSuSkyrikliaisAntras);
            }
            else
            {
                p.PertvarkytoTekstoSpausdinimasFaile(CFr2, ZodziaiSuSkyrikliaisPirmas, ZodziaiSuSkyrikliaisAntras);
            }
        }