Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- //using System.Text.RegularExpressions;
- using System.IO;
- namespace _5Laboratorinisdarbas
- {
- class Program
- {
- public const int MaxLines = 200;
- static void Main(string[] args)
- {
- const string CFd = @"..\\..\\Duomenys.txt";
- const string CFr = "..\\..\\ManoKnyga.txt";
- const string CFa = "..\\..\\Analize.txt";
- char[] skyrikliai = {' ','.',',','!','?',':',';','(',')','\t'};
- // string skirt = "[\\s,.;:!?()\\-]+";
- string raide;
- Console.WriteLine("Iveskite raide(unikaliems zodziams rasti)");
- raide = Console.ReadLine();
- char a = Convert.ToChar(raide);
- string[] sutampa = SkaitoRaso(CFd, CFa, skyrikliai, a);
- string[] lines = new string[MaxLines];
- lines = File.ReadAllLines(CFd, Encoding.GetEncoding(1257));
- int[] ZodziuIlgiai = RastiIlgius(lines, skyrikliai);
- Lyginimas(CFr, lines, ZodziuIlgiai);
- //FileStream filestream = new FileStream("out.txt", FileMode.Create);
- //var streamwriter = new StreamWriter(filestream);
- //streamwriter.AutoFlush = true;
- //Console.SetOut(streamwriter);
- //Console.SetError(streamwriter);
- }
- //static void Apdoroti(string fv, char[] skyrikliai, char raide)
- //{
- // string[] lines = File.ReadAllLines(fv, Encoding.GetEncoding(1257));
- // foreach (string line in lines)
- // {
- // if (line.Length > 0)
- // Console.WriteLine("Unikalus zodziai kurie prasideda is nurodytos raides: {0}", Unikalus(fv, skyrikliai, raide));
- // }
- //}
- //static string[] Zodziai(string eilute, char[] skyrikliai, ref int sutampantys)
- //{
- // string[] parts = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
- // string[] fragm = new string[sutampantys];
- // foreach (string zodis in parts)
- // if (zodis.Length > 0)
- // {
- // if (char.ToLower(zodis[zodis.Length - 1]) == char.ToLower(zodis[zodis.Length]))
- // sutampantys++;
- // return fragm;
- //}
- //per visas eilutes ir skaiciuti kiek is viso zodziu
- //tada kiek daugiausia zodziu
- // sudrau masyva kur max nariu sk = stulpeliu skaicius
- //
- // unikaliems zodziams rasti iki 10 unikaliu pagal nurodyta raide
- static void SpausdinimasUnikaliu(string[] sutampa)
- {
- Console.WriteLine("Unikalus zodziai(prasidedantys is nurodytos raides):");
- for (int i = 0; i < sutampa.Length; i++)
- {
- Console.WriteLine("{0}", sutampa[i]);
- }
- }
- static void Unikalus(string eilute, char[] skyrikliai, char raide, string[] sutampa, ref int Count)
- {
- string[] parts = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
- foreach (string zodis in parts)
- if (zodis[0] == raide && Count < 10)
- {
- if (!sutampa.Contains(zodis))
- sutampa[Count++] = zodis;
- }
- if (sutampa == null)
- Console.WriteLine("Nera tokio zodzio");
- }
- //static void Lyginimas(string fv, string eilute, char[] skyrikliai, int e, int st)
- //{
- // int StulpeliuSk = st;
- // string tarpas = "";
- // string[][] lyginimas = new string[e][];
- // lyginimas = File.ReadAllLines(fv);
- // string[] parts = eilute.Split(' ');
- // foreach (string zodis in parts)
- // {
- // for (int i = 0; i < st; i++)
- // {
- // int IlgiausiasZodis = 0;
- // for (int j = 0; j < lyginimas.Count; j++)
- // {
- // if (lyginimas[j].Count > i)
- // {
- // if (IlgiausiasZodis < lyginimas[j][i].Length)
- // {
- // IlgiausiasZodis = lyginimas[j][i].Length;
- // }
- // }
- // }
- // }
- // }
- //}
- public static void Lyginimas(string Fr, string[] lines, int[] ZodziuIlgiai)
- {
- int ZodziuCount = 0;
- int Skirtumas = 0;
- using (var fr = File.CreateText(Fr))
- {
- foreach (string line in lines)
- {
- string[] values = line.Split(' ');
- foreach (string value in values)
- {
- Skirtumas = ZodziuIlgiai[ZodziuCount] - value.Length;
- fr.Write(value);
- for (int i = 0; i <= Skirtumas; i++)
- fr.Write(" ");
- ZodziuCount++;
- }
- ZodziuCount = 0;
- fr.WriteLine("");
- }
- }
- }
- public static int[] RastiIlgius(string[] lines, char[] skyrikliai)
- {
- int[,] ilgiai = new int[100, 100];
- int[] AtrinktiDidziausi = new int[10000];
- int j = 0;
- foreach (string line in lines)
- {
- string[] values = line.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
- for (int i = 0; i < values.Length; i++)
- ilgiai[i, j] = values[i].Length;
- j++;
- }
- for (int i = 0; i < ilgiai.GetLength(0); i++)
- for (int e = 0; e < ilgiai.GetLength(1); e++)
- if (AtrinktiDidziausi[i] < ilgiai[i, e]) AtrinktiDidziausi[i] = ilgiai[i, e];
- return AtrinktiDidziausi;
- }
- static int IlgiausiaEilute(string eilute, char[] skyrikliai)
- {
- string[] parts = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
- int ZodziuSkEil = 0;
- foreach (string zodis in parts)
- {
- if (zodis.Length > 0)
- ZodziuSkEil++;
- }
- return ZodziuSkEil;
- }
- static int IlgiausiasStulpelis(string fv, string eilute, char[] skyrikliai)
- {
- string[] lines = File.ReadAllLines(fv);
- string[] parts = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
- int StulpeliuSk = 0;
- foreach (string line in lines)
- {
- if (line.Length > 0)
- StulpeliuSk++;
- }
- return StulpeliuSk;
- }
- // paraso i konsole unikalius
- static string[] SkaitoRaso(string fv, string fa, char[] skyrikliai, char raide)
- {
- string[] sutampa = new string[10];
- int Count = 0;
- using (var frr = File.CreateText(fa))
- {
- using (StreamReader reader = new StreamReader(fv, Encoding.GetEncoding(1257)))
- {
- string line;
- while ((line = reader.ReadLine()) != null)
- {
- if (Count < 10)
- {
- Unikalus(line, skyrikliai, raide, sutampa, ref Count);
- frr.WriteLine(sutampa);
- }
- }
- }
- SpausdinimasUnikaliu(sutampa);
- }
- return sutampa;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement