Dual write PDSF for Metrology Viewer Version Error Message Tests passed net8.0 v2_52_0-Tests v2_52_0-Tests editorconfig editorconfig yml ec fix yaml explicit contents Delete File if Exists dotnet_diagnostic Removed Open Insight API IFX Directory Removed Open Insight API IFX Directory from Save CA1862 and GetWeekOfYear for WritePDSF gitignore cellInstanceVersion.EdaConnection.PortNumber Added Climatec to Test.cs NETFRAMEWORK GetJobIdDirectory Remove and
86 lines
3.3 KiB
C#
86 lines
3.3 KiB
C#
using System.IO;
|
|
using System.Linq;
|
|
|
|
namespace Adaptation.FileHandlers.csv;
|
|
|
|
public class CSV
|
|
{
|
|
|
|
#nullable enable
|
|
#pragma warning disable CA1834
|
|
|
|
public string? FileVersion { get; set; }
|
|
public Info? Info { get; set; }
|
|
public Setup? Setup { get; set; }
|
|
public LayerHeader? LayerHeader { get; set; }
|
|
public ProfileHeader? ProfileHeader { get; set; }
|
|
public Calibration? Calibration { get; set; }
|
|
public RawData? RawData { get; set; }
|
|
|
|
internal static CSV GetCSV(string path)
|
|
{
|
|
CSV result;
|
|
int? endInfo = null;
|
|
int? endSetup = null;
|
|
int? endLayers = null;
|
|
int? startInfo = null;
|
|
int? startSetup = null;
|
|
int? endProfiles = null;
|
|
int? startLayers = null;
|
|
int? startRawData = null;
|
|
int? startProfiles = null;
|
|
int? endCalibration = null;
|
|
int? startCalibration = null;
|
|
#if NET
|
|
string[] lines = File.ReadAllLines(path, System.Text.Encoding.Latin1); // µ³®
|
|
# else
|
|
string[] lines = File.ReadAllLines(path, System.Text.Encoding.GetEncoding("ISO-8859-1")); // µ³®
|
|
# endif
|
|
string? fileVersion = lines.Length == 0 ? null : GetFileVersion(lines.First());
|
|
for (int i = 1; i < lines.Length; i++)
|
|
{
|
|
if (lines[i].StartsWith("--INFO--"))
|
|
startInfo = i + 1;
|
|
else if (lines[i].StartsWith("--SETUP--"))
|
|
(endInfo, startSetup) = (i, i + 1);
|
|
else if (lines[i].StartsWith("--LAYERS--"))
|
|
(endSetup, startLayers) = (i, i + 1);
|
|
else if (lines[i].StartsWith("--PROFILES--"))
|
|
(endLayers, startProfiles) = (i, i + 1);
|
|
else if (lines[i].StartsWith("--CALIBRATION--"))
|
|
(endProfiles, startCalibration) = (i, i + 1);
|
|
else if (lines[i].StartsWith("--RAWDATA--"))
|
|
(endCalibration, startRawData) = (i, i + 1);
|
|
}
|
|
RawData? rawData = startRawData is null ? null : RawData.GetRawData(lines, startRawData.Value, lines.Length);
|
|
Info? info = startInfo is null || endInfo is null ? null : Info.GetInfo(lines, startInfo.Value, endInfo.Value);
|
|
Setup? setup = startSetup is null || endSetup is null ? null : Setup.GetSetup(lines, startSetup.Value, endSetup.Value);
|
|
LayerHeader? layerHeader = startLayers is null || endLayers is null ? null : LayerHeader.GetLayerHeader(lines, startLayers.Value, endLayers.Value);
|
|
ProfileHeader? profileHeader = startProfiles is null || endProfiles is null ? null : ProfileHeader.GetProfileHeader(lines, startProfiles.Value, endProfiles.Value);
|
|
Calibration? calibration = startCalibration is null || endCalibration is null ? null : Calibration.GetCalibration(lines, startCalibration.Value, endCalibration.Value);
|
|
result = new()
|
|
{
|
|
FileVersion = fileVersion,
|
|
Info = info,
|
|
Setup = setup,
|
|
LayerHeader = layerHeader,
|
|
ProfileHeader = profileHeader,
|
|
Calibration = calibration,
|
|
RawData = rawData,
|
|
|
|
};
|
|
return result;
|
|
}
|
|
|
|
private static string GetFileVersion(string line)
|
|
{
|
|
string result;
|
|
string[] segments = line.Split(',');
|
|
if (segments.Length < 2)
|
|
result = string.Empty;
|
|
else
|
|
result = segments.Last();
|
|
return result;
|
|
}
|
|
|
|
} |