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.IO;
- /** Užduotis. Faile Tekstas.txt užrašytas tekstas. Gretimi žodžiai eilutėje
- skiriami vienu arba keliais skyrikliais. Skyrikliai yra žinomi.
- Rasti ir spausdinti ekrane ilgiausią teksto žodį iš tų, kuriuose yra 3
- skirtingos balsės (jei tokie žodžiai yra keli, rasti pirmą). To žodžio eilutę
- perkelti į teksto pradžią. Redaguotą tekstą užrašyti į failą RedTekstas.txt.
- Tekstą analizuokite skaitydami po vieną eilutę. */
- namespace K2
- {
- class Program
- {
- const string CFd = "..\\..\\Tekstas.txt";
- const string CFr = "..\\..\\RedTekstas.txt";
- static void Main(string[] args)
- {
- if (File.Exists(CFr))
- File.Delete(CFr);
- string skyr = " .,!?:;()\t";
- string zod;
- int me = -1;
- RastiZTekste(CFd, skyr, out zod, ref me);
- if (me >= 0)
- {
- PerkeltiEilute(CFd, CFr, me);
- Console.WriteLine("{0}", zod);
- }
- else
- Console.WriteLine("Žodžio, atitinkančio kriterijus, nėra.");
- Console.ReadKey();
- }
- // Grąžina eilutės (žodžio) e skirtingų balsių skaičių.
- static int SkirtBalsiuSkaicius(string e)
- {
- int skai = 0;
- char[] balsės = { 'a', 'e', 'i', 'o', 'u', 'y' };
- for (int i = 0; i < balsės.Length; i++)
- if (e.IndexOf(balsės[i]) >= 0)
- skai = skai + 1;
- return skai;
- }
- // Eilutėje e randa ilgiausią žodį iš tų, kuriuose yra 3 skirtingos balsės.
- // Neradus grąžina tuščią eilutę.
- // sk – skyrikliai.
- static string RastiZodiEil(string e, string sk)
- {
- char[] skyr = sk.ToCharArray();
- string[] parts = e.Split(skyr, StringSplitOptions.RemoveEmptyEntries);
- foreach (string žodis in parts)
- {
- if (SkirtBalsiuSkaicius(žodis) == 3)
- return žodis;
- }
- return "";
- }
- // Faile fv randa ilgiausią žodį zod iš tų,
- // kuriuose yra 3 skirtingos balsės, ir jo eilutės numerį me.
- // sk – skyrikliai.
- static void RastiZTekste(string fv, string sk, out string zod, ref int me)
- {
- string[] lines = File.ReadAllLines(fv, Encoding.GetEncoding(1257));
- zod = "";
- int m = 0;
- foreach (string line in lines)
- {
- if (zod.Length < RastiZodiEil(line, sk).Length)
- {
- zod = RastiZodiEil(line, sk);
- me = m;
- }
- m++;
- }
- }
- // Eilutę, kurios numeris n, perkelia į teksto pradžią; fvd – pradinio,
- // fvr – redaguoto failų vardai.
- static void PerkeltiEilute(string fvd, string fvr, int n)
- {
- string[] lines = File.ReadAllLines(fvd, Encoding.GetEncoding(1257));
- int sk = 0;
- foreach (string line in lines)
- sk++;
- using (var fr = File.AppendText(fvr))
- {
- fr.WriteLine(lines[n]);
- for (int i = 0; i < n; i++)
- fr.WriteLine(lines[i]);
- for (int i = n + 1; i < sk; i++)
- fr.WriteLine(lines[i]);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement