260 / 216 / 94
Регистрация: 07.04.2011
Сообщений: 1,334
|
|||||||||||
1 | |||||||||||
Чтение из файла с разделителями16.12.2014, 16:22. Показов 15781. Ответов 11
Метки нет Все метки)
(
Всем доброго времени суток.
Вопрос по чтению из CSV файла с разделителями Структура файла следующая: 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 Каждой строке файла соответствует определенный столбец книги Excel То есть первая строка в файле - это первый столбец экселя,вторая в файле - второй столбец экселя. Чтение идет из Экселя по столбцам,а запись в файл столбца производится в строку. Сохраняю в CSV файл. Чтение из файла с разделителем
Строка 1 в массиве: 1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20 После 20 определить конец строки,увеличить индекс строки и читать далее.
0
|
|
16.12.2014, 16:22 | |
Ответы с готовыми решениями:
11
Чтение данных из произвольного файла с разделителями Ввод из файла с разделителями
|
7275 / 6220 / 2833
Регистрация: 14.04.2014
Сообщений: 26,871
|
|
16.12.2014, 16:26 | 2 |
Ну если у тебя по 20 чисел в строке, то просто считай сколько раз getline() вызван.
1
|
16.12.2014, 16:30 | 3 | |||||
![]() Решение
Функция StrTok
1
|
260 / 216 / 94
Регистрация: 07.04.2011
Сообщений: 1,334
|
|
16.12.2014, 16:31 [ТС] | 4 |
Необязательно 20.Может быть и 100,и 5,и 10000.Неизвестно какой будет файл с данными.
0
|
7275 / 6220 / 2833
Регистрация: 14.04.2014
Сообщений: 26,871
|
||||||
16.12.2014, 16:35 | 5 | |||||
Тогда сначала считываешь строку, затем делишь на элементы. Сначала
1
|
260 / 216 / 94
Регистрация: 07.04.2011
Сообщений: 1,334
|
|
16.12.2014, 16:40 [ТС] | 6 |
Вариант подходит,тем более есть переменная,содержащая количество строк в Экселе.Но считать 10 000 раз эту переменную..
Попробую strtok Спасибо!
0
|
16.12.2014, 17:54 | 7 | |||||
Как вариант:
0
|
260 / 216 / 94
Регистрация: 07.04.2011
Сообщений: 1,334
|
||||||
16.12.2014, 19:09 [ТС] | 8 | |||||
Решил проблему так:
Допустим в первом столбце книги содержится 3 пустых ячейки.Сохраненный файл будет выглядеть так: 1;;;;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20 Отсутствие значений между разделителями это тоже значение!Пустая ячейка! В данном коде,при делении строки,не учитывается пустое значение между разделителями.И как следствие,неправильно считается количество j. Строка состоит из цифр,с 1 до 20.Значит j должно равняться 20.У меня получается j = 17. Как учесть данный момент,что пустая строка = это тоже значение?И при ее чтении увеличивать j
0
|
7275 / 6220 / 2833
Регистрация: 14.04.2014
Сообщений: 26,871
|
|
16.12.2014, 19:34 | 9 |
Тогда istringstream и getline() c ';' вместо strtok().
0
|
260 / 216 / 94
Регистрация: 07.04.2011
Сообщений: 1,334
|
|||||||||||
17.12.2014, 13:56 [ТС] | 10 | ||||||||||
Решил сделать так,если кому-то интересно:
Чтение данных из ячейки:
Файл выглядит так: &;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19 ;20 1;&;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;2 0
0
|
7275 / 6220 / 2833
Регистрация: 14.04.2014
Сообщений: 26,871
|
|
17.12.2014, 14:07 | 11 |
Почему не ноль? У тебя же числа.
0
|
260 / 216 / 94
Регистрация: 07.04.2011
Сообщений: 1,334
|
|
17.12.2014, 14:15 [ТС] | 12 |
Могут быть и названия,и 0 быть может.А вот & отсутствовать будет всегда! Поэтому 0 писать в файл бессмысленно.
0
|
17.12.2014, 14:15 | |
Помогаю со студенческими работами здесь
12
Переделать в коде чтение из файла в чтение с клавиатуры Чтение из файла. Повторное чтение файла
Чтение нескольких структур и одной переменной из бинарного файла. Формат файла имеется Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |