Advertisement
Guest User

sitas

a guest
Nov 25th, 2015
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.96 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. //using System.Text.RegularExpressions;
  7. using System.IO;
  8.  
  9. namespace _5Laboratorinisdarbas
  10. {
  11. class Program
  12. {
  13. public const int MaxLines = 200;
  14.  
  15. static void Main(string[] args)
  16. {
  17.  
  18. const string CFd = @"..\\..\\Duomenys.txt";
  19. const string CFr = "..\\..\\ManoKnyga.txt";
  20. const string CFa = "..\\..\\Analize.txt";
  21. char[] skyrikliai = {' ','.',',','!','?',':',';','(',')','\t'};
  22. // string skirt = "[\\s,.;:!?()\\-]+";
  23. string raide;
  24. Console.WriteLine("Iveskite raide(unikaliems zodziams rasti)");
  25. raide = Console.ReadLine();
  26. char a = Convert.ToChar(raide);
  27. string[] sutampa = SkaitoRaso(CFd, CFa, skyrikliai, a);
  28.  
  29. string[] lines = new string[MaxLines];
  30. lines = File.ReadAllLines(CFd, Encoding.GetEncoding(1257));
  31. int[] ZodziuIlgiai = RastiIlgius(lines, skyrikliai);
  32. Lyginimas(CFr, lines, ZodziuIlgiai);
  33. //FileStream filestream = new FileStream("out.txt", FileMode.Create);
  34. //var streamwriter = new StreamWriter(filestream);
  35. //streamwriter.AutoFlush = true;
  36. //Console.SetOut(streamwriter);
  37. //Console.SetError(streamwriter);
  38.  
  39.  
  40. }
  41. //static void Apdoroti(string fv, char[] skyrikliai, char raide)
  42. //{
  43. // string[] lines = File.ReadAllLines(fv, Encoding.GetEncoding(1257));
  44. // foreach (string line in lines)
  45. // {
  46. // if (line.Length > 0)
  47. // Console.WriteLine("Unikalus zodziai kurie prasideda is nurodytos raides: {0}", Unikalus(fv, skyrikliai, raide));
  48. // }
  49. //}
  50. //static string[] Zodziai(string eilute, char[] skyrikliai, ref int sutampantys)
  51. //{
  52. // string[] parts = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
  53. // string[] fragm = new string[sutampantys];
  54. // foreach (string zodis in parts)
  55. // if (zodis.Length > 0)
  56. // {
  57. // if (char.ToLower(zodis[zodis.Length - 1]) == char.ToLower(zodis[zodis.Length]))
  58. // sutampantys++;
  59.  
  60. // return fragm;
  61. //}
  62. //per visas eilutes ir skaiciuti kiek is viso zodziu
  63. //tada kiek daugiausia zodziu
  64. // sudrau masyva kur max nariu sk = stulpeliu skaicius
  65. //
  66. // unikaliems zodziams rasti iki 10 unikaliu pagal nurodyta raide
  67. static void SpausdinimasUnikaliu(string[] sutampa)
  68. {
  69. Console.WriteLine("Unikalus zodziai(prasidedantys is nurodytos raides):");
  70. for (int i = 0; i < sutampa.Length; i++)
  71. {
  72. Console.WriteLine("{0}", sutampa[i]);
  73. }
  74. }
  75. static void Unikalus(string eilute, char[] skyrikliai, char raide, string[] sutampa, ref int Count)
  76. {
  77. string[] parts = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
  78. foreach (string zodis in parts)
  79. if (zodis[0] == raide && Count < 10)
  80. {
  81. if (!sutampa.Contains(zodis))
  82. sutampa[Count++] = zodis;
  83. }
  84. if (sutampa == null)
  85. Console.WriteLine("Nera tokio zodzio");
  86. }
  87. //static void Lyginimas(string fv, string eilute, char[] skyrikliai, int e, int st)
  88. //{
  89.  
  90. // int StulpeliuSk = st;
  91. // string tarpas = "";
  92. // string[][] lyginimas = new string[e][];
  93. // lyginimas = File.ReadAllLines(fv);
  94. // string[] parts = eilute.Split(' ');
  95. // foreach (string zodis in parts)
  96. // {
  97. // for (int i = 0; i < st; i++)
  98. // {
  99. // int IlgiausiasZodis = 0;
  100. // for (int j = 0; j < lyginimas.Count; j++)
  101. // {
  102. // if (lyginimas[j].Count > i)
  103. // {
  104. // if (IlgiausiasZodis < lyginimas[j][i].Length)
  105. // {
  106. // IlgiausiasZodis = lyginimas[j][i].Length;
  107. // }
  108. // }
  109. // }
  110. // }
  111. // }
  112. //}
  113. public static void Lyginimas(string Fr, string[] lines, int[] ZodziuIlgiai)
  114. {
  115. int ZodziuCount = 0;
  116. int Skirtumas = 0;
  117. using (var fr = File.CreateText(Fr))
  118. {
  119. foreach (string line in lines)
  120. {
  121. string[] values = line.Split(' ');
  122. foreach (string value in values)
  123. {
  124. Skirtumas = ZodziuIlgiai[ZodziuCount] - value.Length;
  125. fr.Write(value);
  126. for (int i = 0; i <= Skirtumas; i++)
  127. fr.Write(" ");
  128. ZodziuCount++;
  129. }
  130. ZodziuCount = 0;
  131. fr.WriteLine("");
  132. }
  133. }
  134. }
  135. public static int[] RastiIlgius(string[] lines, char[] skyrikliai)
  136. {
  137. int[,] ilgiai = new int[100, 100];
  138. int[] AtrinktiDidziausi = new int[10000];
  139. int j = 0;
  140. foreach (string line in lines)
  141. {
  142. string[] values = line.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
  143. for (int i = 0; i < values.Length; i++)
  144. ilgiai[i, j] = values[i].Length;
  145. j++;
  146. }
  147. for (int i = 0; i < ilgiai.GetLength(0); i++)
  148. for (int e = 0; e < ilgiai.GetLength(1); e++)
  149. if (AtrinktiDidziausi[i] < ilgiai[i, e]) AtrinktiDidziausi[i] = ilgiai[i, e];
  150.  
  151. return AtrinktiDidziausi;
  152. }
  153.  
  154. static int IlgiausiaEilute(string eilute, char[] skyrikliai)
  155. {
  156. string[] parts = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
  157. int ZodziuSkEil = 0;
  158. foreach (string zodis in parts)
  159. {
  160. if (zodis.Length > 0)
  161. ZodziuSkEil++;
  162. }
  163. return ZodziuSkEil;
  164. }
  165. static int IlgiausiasStulpelis(string fv, string eilute, char[] skyrikliai)
  166. {
  167. string[] lines = File.ReadAllLines(fv);
  168. string[] parts = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
  169. int StulpeliuSk = 0;
  170. foreach (string line in lines)
  171. {
  172. if (line.Length > 0)
  173. StulpeliuSk++;
  174. }
  175. return StulpeliuSk;
  176. }
  177. // paraso i konsole unikalius
  178. static string[] SkaitoRaso(string fv, string fa, char[] skyrikliai, char raide)
  179. {
  180. string[] sutampa = new string[10];
  181. int Count = 0;
  182. using (var frr = File.CreateText(fa))
  183. {
  184.  
  185. using (StreamReader reader = new StreamReader(fv, Encoding.GetEncoding(1257)))
  186. {
  187.  
  188. string line;
  189. while ((line = reader.ReadLine()) != null)
  190. {
  191. if (Count < 10)
  192. {
  193. Unikalus(line, skyrikliai, raide, sutampa, ref Count);
  194. frr.WriteLine(sutampa);
  195. }
  196. }
  197.  
  198. }
  199. SpausdinimasUnikaliu(sutampa);
  200. }
  201. return sutampa;
  202. }
  203. }
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement