public DigitModel ParseCsvSingleRow(string csvPath, int pictureSize)
        {
            var reader = new StreamReader(File.OpenRead(csvPath));
            string firstLine = reader.ReadLine();
            byte acumulator = 0;
            int pixelNr = 0;
            byte digitLabel = (byte)(firstLine[0] - '0');
            DigitModel currentModel = new DigitModel(digitLabel, pictureSize);
            for (int i = 1; i < firstLine.Length; i++)
            {
                char currentChar = firstLine[i];
                if (currentChar >= '0' && currentChar <= '9')
                {
                    acumulator = (byte)(acumulator * 10 + (currentChar - '0'));
                }
                else if (pixelNr < pictureSize)
                {
                    currentModel.DigitRepresentation[pixelNr] = acumulator;
                    acumulator = 0;
                    pixelNr++;
                }
            }

            return currentModel;
        }
 public void PrintDigit(DigitModel digit)
 {
     Console.WriteLine("\n\n << " + digit.Digit+" >>");
     int rowLength = (int)Math.Sqrt(digit.DigitRepresentation.Length);
     for (int i = 0; i < rowLength; i++)
     {
         for (int j = 0; j < rowLength; j++)
         {
             int pixel = digit.DigitRepresentation[(i * rowLength) + j];
             if (pixel != 0)
             {
                 Console.Write(" ");
             }
             else
             {
                 Console.Write((char)176);
             }
         }
         Console.WriteLine();
     }
 }
        public List<DigitModel> ParseCsvAsStream(string csvPath, int pictureSize)
        {
            List<DigitModel> digitModels = new List<DigitModel>();

            var file = File.ReadAllText(csvPath);
            byte acumulator = 0;
            int pixelNr = 0;
            byte digitLabel = (byte)(file[0] - '0');
            DigitModel currentModel = new DigitModel(digitLabel, pictureSize);
            for (int i = 1; i < file.Length; i++)
            {
                char currentChar = file[i];
                if ((i + 1) == file.Length)
                {
                    digitModels.Add(currentModel);
                }
                else if (currentChar == '\n')
                {
                    digitModels.Add(currentModel);
                    digitLabel = (byte)(file[i + 1] - '0');
                    currentModel = new DigitModel(digitLabel, pictureSize);
                    pixelNr = 0;
                    i += 1;
                }
                else if (currentChar >= '0' && currentChar <= '9')
                {
                    acumulator = (byte)(acumulator * 10 + (currentChar - '0'));
                }
                else if (pixelNr < pictureSize)
                {
                    currentModel.DigitRepresentation[pixelNr] = acumulator;
                    acumulator = 0;
                    pixelNr++;
                }
            }

            return digitModels;
        }