Получение данных с csv

Serg24

Client
Регистрация
16.12.2017
Сообщения
51
Благодарностей
4
Баллы
8
Привет
Решил написать код, который будет проверять мои сайты на индексацию в ПС и заносить данные в csv типа

(шапка) урл; дата; дата; дата; дата
сайт1;кол-во;кол-во;кол-во;кол-во
сайт2;кол-во;кол-во;кол-во;кол-во
сайт3;кол-во;кол-во;кол-во;кол-во

Код:
IZennoTable table = project.Tables["sites"];
project.SendInfoToLog("всего проверяем " + table.RowCount, true);
int ColCnt = table.ColCount;
table.SetCell(ColCnt,0, DateTime.Now.ToString());
for(int i = 1; i < table.RowCount; i++)
{
    string curr = String.Join(";", table.GetRow(i));
    string[] stroka = curr.Split(';');
    //project.SendInfoToLog(stroka.Count().ToString(), true);
    string result = "bann";

    project.SendInfoToLog(stroka[0] +"--"+ stroka[ColCnt-1], true);
    if(stroka[ColCnt-1] != "bann")
    {
        result = stroka[0].Check();
        if(result == "")
        {
            result = "bann";
        }
    }
  
    table.SetCell(ColCnt, i, result);
}
Все получилось, кроме одного. При добавлении нового сайта у него нет "последней" колонки
(шапка) урл; дата; дата; дата; дата
сайт1;кол-во;кол-во;кол-во;кол-во
сайт2;кол-во;кол-во;кол-во;кол-во
сайт3;кол-во;кол-во;кол-во;кол-во
сайт4

Соответственно не могу к ней достучаться.
Пробовал задать ее
Код:
try {
            string last = stroka[ColCnt-1];
        }
    catch(Exception ex)
        {
            table.SetCell(ColCnt, i, "");
        }
Не помогло. Есть советы?
 
Последнее редактирование:

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Каким методом добавляете строку с последним сайтом? Может попробуйте ее вместе с разделителями добавлять: подсчитайте сколько разделителей в последней «нормальной» строке, и столько добавьте.
П.С. У зенки очень много недокументированных подводных камней при работе с таблицами. Когда-то активно работал с формирование отчетов в них через C#. И с подобным сталкивался. Там еще баги проявляются по разному, в зависимости от того с прикреплённой к файлу таблицей мы работаем или нет. Жаль не задокументировал всех особенностей. Теперь не вспомнить подробно.
 
  • Спасибо
Реакции: Serg24

Serg24

Client
Регистрация
16.12.2017
Сообщения
51
Благодарностей
4
Баллы
8

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
ну раз ручками, то тогда однозначность добавляйте вместе с разделителем, либо через такой редактор добавляйте, который сам разделители автоматом добавит, то есть "ратянет" строку до размеров таблицы. Хз правда какой так делает.
 

Serg24

Client
Регистрация
16.12.2017
Сообщения
51
Благодарностей
4
Баллы
8
Добавлять 300 ; при добавлении одной строки как-то не очень)))
Подумаю, может сделать еще цикл, который будет сначала проходить по строкам и добавлять нужное кол-во ячеек...
 

Serg24

Client
Регистрация
16.12.2017
Сообщения
51
Благодарностей
4
Баллы
8
Вдруг кто наступит на те же грабли...
В 13 строке сделал исправление
if(stroka[ColCnt-1] != "bann")
Проверял элемент созданного на лету массива, который отсутствовал, вместо того чтобы проверить пустую (или нет) строку csv
if(table.GetCell(ColCnt-1, i) != "bann")
:an:
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)