Untitled

mail@pastecode.io avatar
unknown
csharp
7 months ago
3.9 kB
1
Indexable
Never
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.CodeDom;

namespace Lab4
{
    internal class Program
    {
        const string CFd = "..\\..\\U1.txt";
        const string CFr = "..\\..\\Rezultatai.txt";
        static void Main(string[] args)
        {
            char[] skyrikliai = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '-', '~', '\t' };
            Apdoroti(CFd, CFr, skyrikliai);
            PradiniaiDuomenys(CFd);
        }
        /// <summary>
        /// Pradiniu duomenu parodymas
        /// </summary>
        /// <param name="fv">failo duomenys</param>
        static void PradiniaiDuomenys(string fv)
        {
            string[] lines = File.ReadAllLines(fv, Encoding.UTF8);
            foreach (string line in lines)
            {
                if (line.Length > 0)
                {
                    Console.WriteLine(line);
                }
            }
        }
        /// <summary>
        /// Apdoroja teksta
        /// </summary>
        /// <param name="fv">pradiniai duomenys</param>
        /// <param name="fvr">apdorotas tekstas</param>
        /// <param name="skyrikliai">simboliai</param>
        static void Apdoroti(string fv, string fvr, char[] skyrikliai)
        {
            string[] lines = File.ReadAllLines(fv, Encoding.UTF8);
            using (var fr = File.CreateText(fvr))
            {
                string naujas = "";
                foreach (string line in lines)
                {
                    if (line.Length > 0)
                    {
                        naujas = SkirtingiSimboliai(line, skyrikliai);
                    }
                    if (naujas.Length > 0)
                    {
                        fr.WriteLine(naujas);
                    }
                }
            }
        }
        /// <summary>
        /// Metodas kuris ismeta zodzius su skirtingais simboliais
        /// </summary>
        /// <param name="line">tekstas</param>
        /// <param name="skyrikliai">simboliai</param>
        /// <returns></returns>
        static string SkirtingiSimboliai(string line, char[] skyrikliai)
        {
            string naujas = line;
            string[] parts = line.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < parts.Length; i++)
            {
                int dydis = 0;
                char[] zparts = parts[i].ToCharArray();
                for (int j = 0; j < zparts.Length; j++)
                {
                    for (int k = 0; k < zparts.Length; k++)
                    {
                        if (zparts[j] == zparts[k] && j != k)
                        {
                            dydis = 0;
                            j = zparts.Length;
                            break;
                        }
                        else if (j != k && zparts[j] != zparts[k])
                        {
                            dydis = 1;
                            continue;
                        }
                    }
                }
                if (dydis == 1)
                {
                    int pos = naujas.IndexOf(parts[i]);
                    //if (naujas.IndexOf(parts[i], pos + parts[i].Length) == -1)
                    //{
                    //    naujas = naujas.Remove(naujas.IndexOf(parts[i]), parts[i].Length);
                    //}
                    if (pos + parts[i].Length < naujas.Length)
                        Console.WriteLine("{1} >{0}< {2}", naujas[pos + parts[i].Length], parts[i], naujas.IndexOf(parts[i], pos + parts[i].Length));

                    naujas = naujas.Remove(naujas.IndexOf(parts[i]), parts[i].Length);
                }
            }
            return naujas;
        }
    }
}
Leave a Comment