Как из текстового файла вытащить столбцы цифр типа double ? - C#

Узнай цену своей работы

Формулировка задачи:

C# Имею текстовый файл, нужно из него вытащить ТОЛЬКО столбцы цифр и занести отдельно в каждый массив. Определение куда занести то или иное число определяется табуляцией пробелами. Число создаваемых массивов зависит от кол-во столбцов в текством файле, кол-во цифр в каждом столбце изменяется от нового текстового файла Шапка файла тестовая часть в отдельную строку, а стобцы цифр в отдельные массивы На данный момент имею только это: пример, берет файл в котором три столбца и разделят их на три части, но это не то что мне нужно
Листинг программы
  1. string[] lines = File.ReadAllLines(@"E:\gg.txt");
  2. string[] one = new string[lines.Length];
  3. string[] two = new string[lines.Length];
  4. string[] tree = new string[lines.Length];
  5.  
  6. for (int i = 0; i < lines.Length; i++)
  7. {
  8. string[] ns = lines[i].Split(' ');
  9. one[i] = ns[0];
  10. two[i] = ns[1];
  11. tree[i] = ns[2];
  12. }
  13. for (int i = 0; i < one.Length; i++)// a.Length;
  14. {
  15. listBox1.Items.Add(one[i].ToString());
  16. listBox2.Items.Add(two[i].ToString());
  17. listBox3.Items.Add(tree[i].ToString());
  18. }

Решение задачи: «Как из текстового файла вытащить столбцы цифр типа double ?»

textual
Листинг программы
  1. static void Main(string[] args)
  2. {
  3.     foreach (var ar in GetDoubleValues(@"D:\Downloads\508.las"))
  4.     {
  5.         foreach (var d in ar)
  6.         {
  7.             Console.Write("{0,10:f3}", d);
  8.         }
  9.         Console.WriteLine();
  10.     }
  11.     Console.Read();
  12. }
  13.  
  14. static List<double[]> GetDoubleValues(string path)
  15. {
  16.     var result = new List<double[]>();
  17.  
  18.     if (!File.Exists(path))
  19.         throw new FileNotFoundException(path);
  20.  
  21.     using (var reader = new StreamReader(path))
  22.     {
  23.         //Поиск строки, после которой начинаются данные
  24.         while (!reader.ReadLine().Equals("~A"))
  25.         { }
  26.         //Чтение данных
  27.         do
  28.         {
  29.             var line = reader.ReadLine();
  30.             //Разбивка строки по пробелам с пропуском пустых элементов
  31.             var values = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
  32.             //Каждую строку из массива переводим в число
  33.             result.Add(values.Select(s => double.Parse(s, CultureInfo.InvariantCulture)).ToArray());
  34.         } while (reader.Peek() != -1);
  35.     }
  36.     return result;
  37. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы