Записать данные в массив String

95
12 июля 2021, 15:30
  1. Я открыл файл CSV
  2. Разделил данные в ячейках .SetDelimeters(",");
  3. Дальше я хотел записать эти данные в один массив string, но у меня не получается это сделать, смог прочитать только одну строку(Row) CSV файла.
  4. В файле CSV около 1000 строк, и 13 столбцов. Значение строк каждый раз меняется.

За один прогон с файла читается сразу 13 элементов (столбцов)

 while (!tfp.EndOfData)
                {
                    str = tfp.ReadFields();
                }

отсюда вытекает - Вопрос: как записать все данные из файла CSV в string[] ?

(не одну строку, а всё содержимое файла CSV)

string[] str = {};
            string[] str_result = {};
            using (TextFieldParser tfp = new TextFieldParser(@"C:\Users\Хроматограф\Downloads\Telegram Desktop\История обменов.csv"))
            {
                int i = 0;
                tfp.TextFieldType = FieldType.Delimited;
                tfp.SetDelimiters(",");
                while (!tfp.EndOfData)
                {
                    str = tfp.ReadFields();
                }
            }

Данные CSV файла имеют формат

2019-08-25 12:46:57.79, 1330206, 0.00076094, 487, 0.0000038, 640001, RUB, BTC, QIWI, Fast_BTC_Change, 12AE8f, purchase, confirm_payment.
Answer 1

Вот функция для решения вашей задачи

private string[,] LoadCsv(string filename)
{
    // Читаем файл
    string whole_file = System.IO.File.ReadAllText(filename);
    // Разделяем на строки
    whole_file = whole_file.Replace('\n', '\r');
    string[] lines = whole_file.Split(new char[] { '\r' },
        StringSplitOptions.RemoveEmptyEntries);
    // Столбцы и строки
    int num_rows = lines.Length;
    int num_cols = lines[0].Split(',').Length;
    // Массив
    string[,] values = new string[num_rows, num_cols];
    // Загрузка
    for (int r = 0; r < num_rows; r++)
    {
        string[] line_r = lines[r].Split(',');
        for (int c = 0; c < num_cols; c++)
        {
            values[r, c] = line_r[c];
        }
    }
    // Возврат
    return values;
}

Использование

string[,] values = LoadCsv(@"C:\Users\Хроматограф\Downloads\Telegram Desktop\История обменов.csv");
READ ALSO
DateTime при выборе столбца меняется возраст

DateTime при выборе столбца меняется возраст

Есть два столбца, в столбце Год рождения, когда устанавливается дата то в столбце Возраст на: возраст меняетсяПодскажите пожалуйста, как...

95
Сравнение BigInteger и int, short в C#

Сравнение BigInteger и int, short в C#

Пытаюсь разобраться в принципе работы

86
Целесообразность класса для работы с БД MSSQL

Целесообразность класса для работы с БД MSSQL

Создал специальный вспомогательный класс для соединения и работы с БД

70
Как реализовать программу?

Как реализовать программу?

Прошу помощи в разработке программы, оригинал на паскале написан и на 32/64 не переписать его и не запустить (досбоксы и тому подобное не подходит)Надо...

94