Как из текстового файла вытащить столбцы цифр типа double ? - C#
Формулировка задачи:
C# Имею текстовый файл, нужно из него вытащить ТОЛЬКО столбцы цифр и занести отдельно в каждый массив. Определение куда занести то или иное число определяется табуляцией пробелами.
Число создаваемых массивов зависит от кол-во столбцов в текством файле, кол-во цифр в каждом столбце изменяется от нового текстового файла
Шапка файла тестовая часть в отдельную строку, а стобцы цифр в отдельные массивы
На данный момент имею только это:
пример, берет файл в котором три столбца и разделят их на три части, но это не то что мне нужно
Листинг программы
- string[] lines = File.ReadAllLines(@"E:\gg.txt");
- string[] one = new string[lines.Length];
- string[] two = new string[lines.Length];
- string[] tree = new string[lines.Length];
- for (int i = 0; i < lines.Length; i++)
- {
- string[] ns = lines[i].Split(' ');
- one[i] = ns[0];
- two[i] = ns[1];
- tree[i] = ns[2];
- }
- for (int i = 0; i < one.Length; i++)// a.Length;
- {
- listBox1.Items.Add(one[i].ToString());
- listBox2.Items.Add(two[i].ToString());
- listBox3.Items.Add(tree[i].ToString());
- }
Решение задачи: «Как из текстового файла вытащить столбцы цифр типа double ?»
textual
Листинг программы
- static void Main(string[] args)
- {
- foreach (var ar in GetDoubleValues(@"D:\Downloads\508.las"))
- {
- foreach (var d in ar)
- {
- Console.Write("{0,10:f3}", d);
- }
- Console.WriteLine();
- }
- Console.Read();
- }
- static List<double[]> GetDoubleValues(string path)
- {
- var result = new List<double[]>();
- if (!File.Exists(path))
- throw new FileNotFoundException(path);
- using (var reader = new StreamReader(path))
- {
- //Поиск строки, после которой начинаются данные
- while (!reader.ReadLine().Equals("~A"))
- { }
- //Чтение данных
- do
- {
- var line = reader.ReadLine();
- //Разбивка строки по пробелам с пропуском пустых элементов
- var values = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- //Каждую строку из массива переводим в число
- result.Add(values.Select(s => double.Parse(s, CultureInfo.InvariantCulture)).ToArray());
- } while (reader.Peek() != -1);
- }
- return result;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д