示例#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);
        }
示例#2
0
        int IlgiausioZodzioRaidziuSkaicius(ZodziuKonteineris VisiPirmosKnygosZodziai)
        {
            int ilgis = 0;

            for (int i = 0; i < VisiPirmosKnygosZodziai.Kiekis; i++)
            {
                if (VisiPirmosKnygosZodziai.PaimtiZodi(i).Pavadinimas.Length >= ilgis)
                {
                    ilgis = VisiPirmosKnygosZodziai.PaimtiZodi(i).Pavadinimas.Length;
                }
            }
            return(ilgis);
        }
示例#3
0
        /// <summary>
        /// Suranda ilgiausio fragmento simbolių skaičių
        /// </summary>
        /// <param name="ZodziaiSuSkyrikliaisPirmas">Pirmo failo žodžiai su skyrikliais</param>
        /// <param name="ZodziaiSuSkyrikliaisAntras">Antro failo žodžiai su skyrikliais</param>
        /// <returns>Ilgiausio fragmento elementų skaičių</returns>
        int IlgiausioFragmentoElementuSkaicius(ZodziuKonteineris ZodziaiSuSkyrikliaisPirmas, ZodziuKonteineris ZodziaiSuSkyrikliaisAntras)
        {
            StringBuilder Didziausias = new StringBuilder();

            for (int i = 0; i < ZodziaiSuSkyrikliaisPirmas.Kiekis; i++)
            {
                for (int g = 0; g < ZodziaiSuSkyrikliaisAntras.Kiekis; g++)
                {
                    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(" ");

                        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());
                                nauja.Append(" ");
                                o++;
                            }
                            else
                            {
                                o = 0;
                            }
                        }


                        if (nauja.Length >= Didziausias.Length)
                        {
                            Didziausias = nauja;
                        }
                    }
                }
            }

            return(Didziausias.Length);
        }
示例#4
0
        /// <summary>
        /// Sudeda ilgiausius žodžius, kurių nėra antrame faile, į konteinerį
        /// </summary>
        /// <param name="PirmosKnygosZodziai">Pirmo failo žodžiai be skyriklių</param>
        /// <param name="AntrosKnygosZodziai">Antro failo žodžiai be skyriklių</param>
        /// <returns>Ilgiausių žodžių konteinerį</returns>
        ZodziuKonteineris IlgiausiZodziai(ZodziuKonteineris PirmosKnygosZodziai, ZodziuKonteineris AntrosKnygosZodziai)
        {
            ZodziuKonteineris Ilgiausi = new ZodziuKonteineris(IlgiausiuZodziuDydis);
            bool found = false;

            for (int i = 0; i < PirmosKnygosZodziai.Kiekis; i++)
            {
                if (PirmosKnygosZodziai.PaimtiZodi(i).Pavadinimas.Length == IlgiausioZodzioRaidziuSkaicius(PirmosKnygosZodziai))
                {
                    if (AntrosKnygosZodziai.ArYraToksPavadinimas(PirmosKnygosZodziai.PaimtiZodi(i).Pavadinimas))
                    {
                        found = true;
                    }
                    if (found == false && Ilgiausi.Kiekis != 10)
                    {
                        Ilgiausi.PridetiZodi(PirmosKnygosZodziai.PaimtiZodi(i));
                    }
                    found = false;
                }
            }

            return(Ilgiausi);
        }
示例#5
0
 /// <summary>
 /// Apdoroja žodžius
 /// </summary>
 /// <param name="line">Eilutė</param>
 /// <param name="skyrikliai">Skyriklių aibė</param>
 /// <param name="VisiZodziai">Žodžiai be skyriklių</param>
 /// <param name="ZodziaiSuSKyrikliais">Žodžiai su skyrikliais</param>
 /// <param name="eilute">Eilutės numeris</param>
 void ZodziuApdorojimas(string line, char[] skyrikliai, ref ZodziuKonteineris VisiZodziai, ref ZodziuKonteineris ZodziaiSuSKyrikliais, int eilute)
 {
     string[] parts = line.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
     string[] dalys = line.Split(' ');
     foreach (string dalis in dalys)
     {
         if (dalis.Length > 0)
         {
             Zodis Zodziukas = new Zodis(dalis, 0, eilute);
             ZodziaiSuSKyrikliais.PridetiZodi(Zodziukas);
         }
     }
     foreach (string zodis in parts)
     {
         if (zodis.Length > 1 || zodis.Length == 1 && ArSimbolisYraRaide(zodis))
         {
             string zodelis = zodis.ToLower();
             if (VisiZodziai.ArYraToksPavadinimas(zodelis))
             {
                 for (int i = 0; i < VisiZodziai.Kiekis; i++)
                 {
                     if (VisiZodziai.PaimtiZodi(i).Pavadinimas == zodelis)
                     {
                         VisiZodziai.PaimtiZodi(i).Pasikartojimai++;
                         break;
                     }
                 }
             }
             else
             {
                 Zodis Zodziukas = new Zodis(zodelis, 0, eilute);
                 VisiZodziai.PridetiZodi(Zodziukas);
             }
         }
     }
 }
示例#6
0
 /// <summary>
 /// Atspausdina ilgiausius žodžius faile
 /// </summary>
 /// <param name="IlgiausiZodziai">Ilgiausių žodžių konteineris</param>
 /// <param name="fv">Failas, į kurį rašys</param>
 /// <param name="PirmosKnygosZodziai">Pirmo failo žodžiai be skyriklių</param>
 void IlgiausiuZodziuSpausdinimasFaile(ZodziuKonteineris IlgiausiZodziai, string fv, ZodziuKonteineris PirmosKnygosZodziai)
 {
     using (StreamWriter writer = new StreamWriter(fv, true, Encoding.UTF8))
     {
         if (IlgiausiZodziai.Kiekis == 0)
         {
             writer.WriteLine("Duomenų failai tušti arba antrame tekste yra visi pirmo failo ilgiausi žodžiai");
         }
         else
         {
             writer.WriteLine("Ilgiausi ({0} raidžių) žodžiai:", IlgiausioZodzioRaidziuSkaicius(PirmosKnygosZodziai));
             for (int i = 0; i < IlgiausiZodziai.Kiekis; i++)
             {
                 writer.WriteLine(IlgiausiZodziai.PaimtiZodi(i));
             }
         }
     }
 }
示例#7
0
        /// <summary>
        /// Pagal taisykles iš dviejų tekstų padaro vieną
        /// </summary>
        /// <param name="ZodziaiSuSkyrikliaisPirmas">Pirmo failo žodžiai su skyrikliais</param>
        /// <param name="ZodziaiSuSkyrikliaisAntras">Antro failo žodžiai su skyrikliais</param>
        /// <returns>Sudarytą bendrą tekstą</returns>
        StringBuilder TekstoPertvarkymas(ZodziuKonteineris ZodziaiSuSkyrikliaisPirmas, ZodziuKonteineris ZodziaiSuSkyrikliaisAntras)
        {
            StringBuilder VisasTekstas       = new StringBuilder();
            int           k                  = 0;
            int           AntroZodzioPradzia = 0;

            for (int i = 0; i < ZodziaiSuSkyrikliaisPirmas.Kiekis; i++)
            {
                string PirmasZodis = Regex.Replace(ZodziaiSuSkyrikliaisPirmas.PaimtiZodi(i).Pavadinimas, "[.,;()\"]", String.Empty);
                string AntrasZodis = Regex.Replace(ZodziaiSuSkyrikliaisAntras.PaimtiZodi(AntroZodzioPradzia).Pavadinimas, "[.,;()\"]", String.Empty);
                if (PirmasZodis != AntrasZodis)
                {
                    VisasTekstas.Append(ZodziaiSuSkyrikliaisPirmas.PaimtiZodi(i).Pavadinimas);
                    VisasTekstas.Append(" ");
                }
                else
                {
                    if (i + 1 < ZodziaiSuSkyrikliaisPirmas.Kiekis)
                    {
                        PirmasZodis = Regex.Replace(ZodziaiSuSkyrikliaisPirmas.PaimtiZodi(i + 1).Pavadinimas, "[.,;()\"]", String.Empty);
                    }
                    else
                    {
                        break;
                    }
                    for (int g = AntroZodzioPradzia; g < ZodziaiSuSkyrikliaisAntras.Kiekis; g++)
                    {
                        AntrasZodis = Regex.Replace(ZodziaiSuSkyrikliaisAntras.PaimtiZodi(g).Pavadinimas, "[.,;()\"]", String.Empty);
                        if (PirmasZodis != AntrasZodis)
                        {
                            VisasTekstas.Append(ZodziaiSuSkyrikliaisAntras.PaimtiZodi(g).Pavadinimas);
                            VisasTekstas.Append(" ");
                            if (g == ZodziaiSuSkyrikliaisAntras.Kiekis - 1)
                            {
                                AntroZodzioPradzia = ZodziaiSuSkyrikliaisAntras.Kiekis - 1;
                            }
                        }
                        else
                        {
                            if (g + 1 < ZodziaiSuSkyrikliaisAntras.Kiekis - 1)
                            {
                                AntroZodzioPradzia = g + 1;
                            }
                            else
                            {
                                AntroZodzioPradzia = ZodziaiSuSkyrikliaisAntras.Kiekis;
                            }
                            break;
                        }
                    }
                }
            }

            if (AntroZodzioPradzia < ZodziaiSuSkyrikliaisAntras.Kiekis - 1)
            {
                for (int i = AntroZodzioPradzia; i < ZodziaiSuSkyrikliaisAntras.Kiekis; i++)
                {
                    VisasTekstas.Append(ZodziaiSuSkyrikliaisAntras.PaimtiZodi(i).Pavadinimas);
                    VisasTekstas.Append(" ");
                }
            }


            return(VisasTekstas);
        }