Как из текстового файла вытащить столбцы цифр типа 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;
}

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


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

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

13   голосов , оценка 4.231 из 5
Похожие ответы