using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.IO;
using System.Globalization;
namespace CSVReader
{
public class SensorCSVReader
{
private string completeFileName;
private char separator = ';';
public SensorCSVReader(string filename)
{
completeFileName = Path.Combine(".", "Assets", "CSVInput", filename);
if (!File.Exists(completeFileName))
{
completeFileName = "Err";
Debug.Log("Unable to find Sensor File " + filename);
}
}
///
/// Reads the entire File that has been found when Constructing the class instance. No streams are left open after the use of this method.
/// If instance construction was not successfull, only return null.
///
///
/// Returns a field of SensorObjects including all entries of the file
///
public SensorObject[] ReadFile()
{
if (completeFileName == "Err")
{
return null;
}
string[] lines;
try
{
lines = File.ReadAllLines(completeFileName);
}
catch (Exception e)
{
Debug.Log("Unable to Read Lines from Sensor File, " + e.Message);
return null;
}
SensorObject[] sensors = new SensorObject[lines.Length];
for (int i = 0; i < lines.Length; i++)
{
string[] elems = lines[i].Split(separator);
try
{
sensors[i] = new SensorObject(int.Parse(elems[0]), float.Parse(elems[1].Replace(',', '.'), CultureInfo.InvariantCulture),
float.Parse(elems[2].Replace(',', '.'), CultureInfo.InvariantCulture),
float.Parse(elems[3].Replace(',', '.'), CultureInfo.InvariantCulture),
float.Parse(elems[4].Replace(',', '.'), CultureInfo.InvariantCulture),
float.Parse(elems[5].Replace(',', '.'), CultureInfo.InvariantCulture),
float.Parse(elems[6].Replace(',', '.'), CultureInfo.InvariantCulture));
}
catch (Exception e)
{
Debug.Log("Sensorfile Error \"" + e.Message + "\" at line " + i);
sensors[i] = null;
}
}
return sensors;
}
}
}