Чтение оценок из файла, неправильный формат для преобразования строки в двойную ошибку - PullRequest
0 голосов
/ 23 ноября 2018

Я читаю строку из файла и пытаюсь преобразовать ее в удвоенную, но она говорит:

1,55

Необработанное исключение: System.FormatException: входная строка не былав правильном формате.в System.Number.ParseDouble (строковое значение, параметры NumberStyles, NumberFormatInfo numfmt) в System.Convert.ToDouble (строковое значение) в ConsoleApp6.Logic.read () в C: \ Users \ sashk \ Source \ Repos \ ConsoleApp6 \ ConsoleApp6 \Class2.cs: строка 123 в ConsoleApp6.Program.Main (String [] args) в C: \ Users \ sashk \ Source \ Repos \ ConsoleApp6 \ ConsoleApp6 \ Program.cs: строка 19

Itпечатает первый класс, но он блокирует второй дубль, я не знаю, почему.Вот код:

public void read(){
   string[] textes = File.ReadAllLines(@"C:\Users\sashk\Source\Repos\ConsoleApp6\ConsoleApp6\save.txt", Encoding.Default);
   double[] gread = new double[40];
   var excluded = new[] { "Name:", "FacultyNumber:", "Grades:", "AverageGrade:" };
   var dot =  "," ;
   List<string> texts = new List<string>();
   int i = 0;
   int z = 0;
   foreach (string text in textes){
      string[] words = textes[i].Split(' ');
      for (int j = 0; j < words.Length; j++){
         if (!excluded.Contains(words[j])){
            texts.Add(words[j]);
            //  Console.WriteLine(words[j]); 
         }
      }
      for (int j = 3; j < texts.Count; j++){
         if (!System.Text.RegularExpressions.Regex.IsMatch(texts[j], @"^[a-zA-Zа-яА-Я ]+$")){
            var newValue = texts[j].Replace(',', '.');
            Console.WriteLine(newValue);
            gread[z] = Convert.ToDouble(newValue);
            z++;
         }
      }
      addStudent(texts[1], Convert.ToInt32(texts[2]), gread);
      i++;
   }
   //for (int j = 0; j < texts.Count; j++)
   // {
   //     Console.WriteLine(texts[j]);
   // }
}

Содержимое этого файла:

Name: as FacultyNumber: 4 Grades: 1,55 5,55 9,55 AverageGrade: 5
Name: asd FacultyNumber: 2 Grades: 1,23 4,56 7,89 AverageGrade: 4,56
Name: ad FacultyNumber: 3 Grades: 2,55 4,55 7,55 AverageGrade: 4,33
Name: ddd FacultyNumber: 1 Grades: 2,55 5,55 9,55 AverageGrade: 4

Кажется, он правильно отформатирован, но я не знаю, почему он падает?Я проверил наличие лишних пробелов, но их нет.

...