Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 1

Парсер CSV доходит до определенной строки и стопорится

20.12.2020, 15:24. Показов 843. Ответов 2
Метки c# (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу считать все данные из csv. Доходит до определенной строки и стопорится. Подскажите, что я делаю неправильно, пожалуйста


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
        enum CategoryType
        {
            A, B, C, D
        }
 
        class Person {
            public String ID { get; set; }
            public String Name { get; set; }
            public String Company { get; set; }
            public Double Price { get; set; }
            public int Count { get; set; }
            public CategoryType Category { get; set; }
            public int Discount { get; set; }
 
 
            public static Person Create(String str) {
                Person p = new Person();
                string[] e = str.Split(',');
                p.ID = e[0].Trim();
                p.Name = e[1].Trim();
                p.Company = e[2].Trim();
                p.Price = Convert.ToDouble(e[3].TrimStart('$').Replace('.', ','));
                p.Count = Convert.ToInt32(e[4].Trim());
 
                String categ = e[5].Trim();
                if (categ == "A") p.Category = CategoryType.A;
                else if (categ == "B") p.Category = CategoryType.B;
                else if (categ == "C") p.Category = CategoryType.C;
                else p.Category = CategoryType.D;
 
                p.Discount = Convert.ToInt32(e[6].Trim());
 
 
                return p;
            }
 
            public override string ToString()
            {
                String s = string.Format("################\n" +
                    "ID: {0}, Name: {1},\n" +
                    "Company: {2}, Price: {3}, Count: {4},\n" +
                    "Category: {5}, Discount: {6}", ID, Name, Company, Price, Count, Category, Discount);
                return s;
            }
   }
Вложения
Тип файла: rar Fail_csv.rar (24.0 Кб, 3 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.12.2020, 15:24
Ответы с готовыми решениями:

Выполнение кода не доходит до определенной строки
Где здесь ошибка: #include <iostream.h> #include <math.h> #include <conio.h> int main(void) { double x; std::cin>>x;...

WebBrowser: Когда парсер доходит до swf то он прекращает работу
тема такая. Я делал парсер страниц сервера на C#. Тема была простая, если попадается файл с .swf то добавляем его в один listbox, если нет,...

Нужно добавить сложение и вычитание определенной строки 1 матрицы с определенной строкой другой,при этом выбор строки вр
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...

2
384 / 184 / 107
Регистрация: 07.01.2016
Сообщений: 496
20.12.2020, 16:14
Ivanina, там запятые внутри названий, нужно модифицировать Split:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        private static IEnumerable<string> SplitExt(string str)
        {
            bool inName = false;
            int last = 0, i = 0;
            foreach(var ch in str)
            {
                inName ^= ch == '\"';
                if (ch == ',' && !inName)
                {
                    yield return str.Substring(last, i - last);
                    last = i + 1;
                }
                i++;
            }
            yield return str.Substring(last);
        }
0
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
20.12.2020, 16:15
Цитата Сообщение от Ivanina Посмотреть сообщение
Доходит до определенной строки и стопорится.
Этот код может только исключение кинуть.

Цитата Сообщение от Ivanina Посмотреть сообщение
Подскажите, что я делаю неправильно
Лучше парсить с помощью либы CsvHelper, потому что так парсить неправильно:
C#
1
string[] e = str.Split(',');
Вот так может выглядеть строка с 3 колонками с разделителем ,:
Code
1
1,",",3
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.12.2020, 16:15
Помогаю со студенческими работами здесь

CSV парсер
Привет, дали мне вот такую тестовую задачу: В приложении к письму есть файл. Нужно разработать консольную программу которая на вход...

Парсер CSV
Здравствуйте, как из csv файла мне получить двумерный массив? Делаю так: $file = file_get_contents(&quot;parser/file.csv&quot;); ...

Парсер csv.
Добрый день! Недавно на следующую задачу и что то не смог придумать как ее сделать. Подскажите кто знает основную мысль с чего начинать? ...

Парсер CSV 2 Excel
Добрый день, уважаемые коллеги! :senor: Прошу помощи в доведении до ума парсера для CSV файлов в Excel VBA. Получаю экспортные данные...

Многопоточный .csv парсер
Доброго времени суток) Суть вопроса думаю понятна из заголовка. файл .csv содержит строки типа ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru