Exemplo n.º 1
0
        /// <summary>
        /// Converts the data to a csv file
        /// </summary>
        /// <param name="stream"></param>
        /// <param name="separator"></param>
        public static void ToCsvStream(this C2dArray c2DArray, Stream stream, char separator = ',')
        {
            using var writer = new StreamWriter(stream);

            // write header
            if (c2DArray.Headers == null)
            {
                return;
            }

            var headerline = string.Join(separator, c2DArray.Headers);

            writer.WriteLine(headerline);

            // write body
            if (c2DArray.Data == null)
            {
                return;
            }

            foreach (var dataElement in c2DArray.Data)
            {
                var dataline = string.Join(separator, dataElement);
                writer.WriteLine(dataline);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Imports data from a csv file
        /// </summary>
        /// <param name="stream"></param>
        /// <param name="separator"></param>
        public static void FromCsvStream(this C2dArray c2DArray, Stream stream, char separator = ',')
        {
            using var sr = new StreamReader(stream);

            // first line is the header
            c2DArray.Headers.Clear();
            var headerline = sr.ReadLine();

            if (string.IsNullOrEmpty(headerline))
            {
                return;
            }

            var array = headerline.Split(separator);

            for (var i = 0; i < array.Length; i++)
            {
                c2DArray.Headers.Add(array[i]);
                c2DArray.CompiledHeaders.Add(array[i]);
            }

            // read elements
            string line;
            var    cnt = 0;

            while ((line = sr.ReadLine()) != null)
            {
                // check if same columns as header
                var columns = line.Split(separator);
                if (columns.Length != c2DArray.Headers.Count)
                {
                    throw new SerializationException();
                }

                var row = new CArray <CString>();
                for (var i = 0; i < columns.Length; i++)
                {
                    row.Add(columns[i]);
                }

                c2DArray.Data.Add(row);
                c2DArray.CompiledData.Add(row);
                cnt++;
            }
        }
Exemplo n.º 3
0
        public static C2dArray LoadCSV(string resource)
        {
            if (!File.Exists(resource))
            {
                throw new FileNotFoundException($"The file '{resource}' cannot be found.");
            }

            var arr   = new C2dArray();
            var lines = File.ReadAllLines(resource);

            arr.Headers = new Array <string>();
            arr.Headers.AddRange(lines[0].Split(new char[] { ';' }));

            arr.Data = new Array <Array <string> >();
            for (int i = 1; i < lines.Length; i++)
            {
                var temp = new Array <string>();
                temp.AddRange(lines[i].Split(new char[] { ';' }));
                arr.Data.Add(temp);
            }
            return(arr);
        }