feat: add Lab4.RemoveComments
This commit is contained in:
parent
cc64b2190f
commit
30a3aede90
18
Lab4.RemoveComments/Duomenys.txt
Normal file
18
Lab4.RemoveComments/Duomenys.txt
Normal file
@ -0,0 +1,18 @@
|
||||
void DuomenysInternet(Grybai & grybai)
|
||||
{
|
||||
ifstream fd(u2);
|
||||
// string pav, tip;
|
||||
// GrybasInfo s1;
|
||||
int ns = 0;
|
||||
bool yra = true;
|
||||
while(!fd.eof() && yra) { // kol yra duomenų ir jie telpa į masyvą
|
||||
fd >> pav >> tip;
|
||||
s1.Dėti (pav, tip);
|
||||
if(!fd.eof() && (ns - 1 < Grybai::CMax ) )
|
||||
grybai[ns++] = s1; // įrašo naują elementą
|
||||
else
|
||||
yra = false;
|
||||
}
|
||||
fd.close();
|
||||
grybai.Dėti(ns);
|
||||
}
|
60
Lab4.RemoveComments/InOut.cs
Normal file
60
Lab4.RemoveComments/InOut.cs
Normal file
@ -0,0 +1,60 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace Lab4.RemoveComments
|
||||
{
|
||||
class InOut
|
||||
{
|
||||
public static void Process(string fin, string fout, string finfo)
|
||||
{
|
||||
string[] lines = File.ReadAllLines(fin, Encoding.UTF8);
|
||||
string[] cleanedLines = TaskUtils.RemoveComments(lines);
|
||||
|
||||
File.WriteAllLines(fout, cleanedLines);
|
||||
|
||||
using (var writer = File.CreateText(finfo))
|
||||
{
|
||||
// Check line by line which differ
|
||||
int j = 0; // Used for cleaned lines
|
||||
for (int i = 0; i < lines.Length && j < cleanedLines.Length; i++)
|
||||
{
|
||||
Console.WriteLine("{0} ============ {1}", lines[i], cleanedLines[j]);
|
||||
if (lines[i] != cleanedLines[j])
|
||||
{
|
||||
writer.WriteLine(lines[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
using (var writerF = File.CreateText(fout))
|
||||
{
|
||||
using (var writerI = File.CreateText(finfo))
|
||||
{
|
||||
foreach (string line in lines)
|
||||
{
|
||||
if (line.Length > 0)
|
||||
{
|
||||
string newLine = line;
|
||||
if (TaskUtils.RemoveComments(line, out newLine))
|
||||
writerI.WriteLine(line);
|
||||
if (newLine.Length > 0)
|
||||
writerF.WriteLine(newLine);
|
||||
}
|
||||
else
|
||||
{
|
||||
writerF.WriteLine(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
14
Lab4.RemoveComments/Lab4.RemoveComments.csproj
Normal file
14
Lab4.RemoveComments/Lab4.RemoveComments.csproj
Normal file
@ -0,0 +1,14 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="Duomenys.txt">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
15
Lab4.RemoveComments/Program.cs
Normal file
15
Lab4.RemoveComments/Program.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using System;
|
||||
|
||||
namespace Lab4.RemoveComments
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
const string CFd = "Duomenys.txt";
|
||||
const string CFr = "Rezultatai.txt";
|
||||
const string CFa = "Analize.txt";
|
||||
InOut.Process(CFd, CFr, CFa);
|
||||
}
|
||||
}
|
||||
}
|
64
Lab4.RemoveComments/TaskUtils.cs
Normal file
64
Lab4.RemoveComments/TaskUtils.cs
Normal file
@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace Lab4.RemoveComments
|
||||
{
|
||||
class TaskUtils
|
||||
{
|
||||
/** Removes comments and returns an indication about performed activity.
|
||||
@param line – line having possible comments
|
||||
@param newLine – line without comments */
|
||||
public static string[] RemoveComments(string[] lines)
|
||||
{
|
||||
List<string> cleanedLines = new List<string>();
|
||||
|
||||
foreach (string line in lines)
|
||||
{
|
||||
Match case1 = Regex.Match(line, @"^(.*)//.*$");
|
||||
if (case1.Success)
|
||||
{
|
||||
if (case1.Groups[1].Value.Length > 0)
|
||||
{
|
||||
cleanedLines.Add(case1.Groups[1].Value);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cleanedLines.Add(line);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Match case1 = Regex.Match(line, @"^(.*)//.*$");
|
||||
if (case1.Success)
|
||||
{
|
||||
newLine = case1.Groups[1].Value;
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
return cleanedLines.ToArray();
|
||||
|
||||
/*
|
||||
Match case2 = Regex.Match(line, @"^$");
|
||||
if (case2.Success)
|
||||
{
|
||||
newLine = case2.Captures[1].Value;
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
/*newLine = line;
|
||||
for (int i = 0; i < line.Length - 1; i++)
|
||||
if (line[i] == '/' && line[i + 1] == '/')
|
||||
{
|
||||
newLine = line.Remove(i);
|
||||
return true;
|
||||
}
|
||||
return false;*/
|
||||
}
|
||||
}
|
||||
}
|
2
Lab4.sln
2
Lab4.sln
@ -5,6 +5,8 @@ VisualStudioVersion = 15.0.28307.1525
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab4.RemoveLines", "Lab4.RemoveLines\Lab4.RemoveLines.csproj", "{5309D21D-2A14-4332-90EC-504AD89CE397}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lab4.RemoveComments", "Lab4.RemoveComments\Lab4.RemoveComments.csproj", "{4D9B08C9-5735-4C95-8D2A-BDFC888B1E68}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab4.LetterFrequency", "Lab4.LetterFrequency\Lab4.LetterFrequency.csproj", "{F1797B5C-1541-4821-9485-7C3520C5DD8D}"
|
||||
EndProject
|
||||
Global
|
||||
|
Loading…
Reference in New Issue
Block a user