From 8a8b98823fb55fb5ca6695e1cabf885ba6e61bfe Mon Sep 17 00:00:00 2001 From: Rokas Puzonas Date: Mon, 22 Nov 2021 02:20:52 +0200 Subject: [PATCH] feat: complete individual exercise 4 --- Lab4.AddSurname/Program.cs | 3 ++- Lab4.AddSurname/TaskUtils.cs | 24 +++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Lab4.AddSurname/Program.cs b/Lab4.AddSurname/Program.cs index c554ed4..8ef3ff5 100644 --- a/Lab4.AddSurname/Program.cs +++ b/Lab4.AddSurname/Program.cs @@ -10,7 +10,8 @@ namespace Lab4.AddSurname string punctuation = " .,!?:;()\t'"; string name = "Arvydas"; string surname = "Sabonis"; - TaskUtils.Process(CFd, CFr, punctuation, name, surname); + TaskUtils.ProcessAddSurname(CFd, CFr, punctuation, name, surname); + /* TaskUtils.ProcessRemoveWord(CFd, CFr, punctuation, name); */ } } } diff --git a/Lab4.AddSurname/TaskUtils.cs b/Lab4.AddSurname/TaskUtils.cs index 6f80c69..862a624 100644 --- a/Lab4.AddSurname/TaskUtils.cs +++ b/Lab4.AddSurname/TaskUtils.cs @@ -1,4 +1,5 @@ using System.Text; +using System.Text.RegularExpressions; using System.IO; namespace Lab4.AddSurname @@ -39,7 +40,7 @@ namespace Lab4.AddSurname @param punctuation – punctuation marks to separate words @param name – word to find @param surname – given word to add */ - public static void Process(string fin, string fout, string punctuation, string name, string surname) + public static void ProcessAddSurname(string fin, string fout, string punctuation, string name, string surname) { string[] lines = File.ReadAllLines(fin, Encoding.UTF8); using (var writer = File.CreateText(fout)) @@ -51,5 +52,26 @@ namespace Lab4.AddSurname } } } + + public static string RemoveWord(string line, string punctuation, string word) + { + string pattern = String.Format(@"([{0}]*){1}[{0}]*", Regex.Unescape(punctuation), Regex.Unescape(word)); + return Regex.Replace(line, pattern, "$1"); + } + + public static void ProcessRemoveWord(string fin, string fout, string punctuation, string word) + { + using (StreamWriter writer = File.CreateText(fout)) + { + using (StreamReader reader = new StreamReader(fin)) + { + string? line = String.Empty; + while ((line = reader.ReadLine()) != null) + { + writer.WriteLine(RemoveWord(line, punctuation, word)); + } + } + } + } } }