73 lines
2.1 KiB
C#
73 lines
2.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace Adaptation.FileHandlers.csv;
|
|
|
|
public class RawData
|
|
{
|
|
|
|
public string TotalPoints { get; set; }
|
|
public List<Point> Points { get; set; }
|
|
|
|
#nullable enable
|
|
#pragma warning disable CA1834
|
|
|
|
internal static RawData? GetRawData(string[] lines, int start, int stop)
|
|
{
|
|
RawData? result;
|
|
Point point;
|
|
string first;
|
|
string[] segments;
|
|
int? secondStart = null;
|
|
List<Point> points = new();
|
|
List<string> values = new();
|
|
StringBuilder stringBuilder = new();
|
|
for (int i = start; i < stop; i++)
|
|
{
|
|
segments = lines[i].Split(new string[] { "," }, StringSplitOptions.None);
|
|
first = segments.First();
|
|
if (first == "Point")
|
|
{
|
|
secondStart = i + 1;
|
|
break;
|
|
}
|
|
_ = stringBuilder.Append(first).Append(",");
|
|
if (segments.Length > 1)
|
|
values.Add(segments[1]);
|
|
else
|
|
values.Add(string.Empty);
|
|
}
|
|
string header = "Total Points,";
|
|
if (secondStart is null || stringBuilder.Length != header.Length || stringBuilder.ToString() != header)
|
|
result = null;
|
|
else
|
|
{
|
|
result = new()
|
|
{
|
|
TotalPoints = values[0],
|
|
Points = points,
|
|
};
|
|
for (int i = secondStart.Value; i < stop; i++)
|
|
{
|
|
segments = lines[i].Split(new string[] { "," }, StringSplitOptions.None);
|
|
if (segments.Length < 4)
|
|
continue;
|
|
point = new()
|
|
{
|
|
Number = segments[0],
|
|
Depth = segments[1],
|
|
Resistance = segments[2],
|
|
StageX = segments[3],
|
|
StageY = segments[4],
|
|
StageZ = segments[5],
|
|
StageT = segments[6],
|
|
};
|
|
points.Add(point);
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
} |