Maf:Iu Ответов: 1

Последняя строка csv отрезана


Может кто-нибудь, пожалуйста, взглянуть,
Я не знаю, почему в последней строке csv обрезаны последние 4 столбца?!

Может быть, это поможет, если я кратко опишу процесс.

Что я уже пробовал:

//разрыв строки

строитель.AppendLine("\r\n\n");
}
используя (модулю записи StreamWriter ео = новая модулю записи StreamWriter(csvFilePath))

{
sw.WriteLine(строитель);
ув.Флеш();
}

Tomas Takac

Вы имеете в виду три колонки, которые вы добавляете в "если"? Вы пытались его отладить?

Ralf Meier

Что такое "последняя строка csv последние 3 столбца" внутри вашего кода ?
Что говорит ваш отладчик ?

Ralf Meier

Затем вы должны посмотреть, что содержат ваши переменные и какой тип переменных они содержат ...

Sinisa Hajnal

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

Tomas Takac

Вам нужно отладить его и проверить, каково значение data._Stu.

1 Ответов

Рейтинг:
9

Patrice T

Вам нужно подумать о том, где использовать builder.AppendLine или строителя.Добавляйте в зависимости от того, нужна ли вам новая строка в конце или нет.
Из - за этого необязательная часть находится на новой строке вместо конца предыдущей.

builder.AppendLine(data._Vo + "," + data._Bi + "," + data._Dau);

----
В случае, если вы задаетесь вопросом, почему ваш код занимает так много времени, чтобы написать csv-файл, ответ заключается в следующем:
data._Id + "," + quote + data._Na1 + quote + "," + data._Sche + "," + data.bdi_Hi2 + "," + data.Wei + "," + data.Stz + "," + data.Da + "," + data.Vo + "," + data.Bi + "," + data._Ad1 + "," + data.bpt_Ad2 + "," + data._Str + "," + data._AdZ + "," + data._Te1 + ","  + data._or + "," + data._Ges + "," + data._lun + "," + data.p_Na + "," + data.p_Ad + "," + data.p_Ad2 + "," + data.p_T1 + "," + data.p_Mo + "," + data.p_Ml + ","             + data.p_Io + "," + data.z_N + "," + data.z_Ad1 + "," + data.z_Ad2 + "," + data.z_PZ + "," + data.z_O + "," + data.z_T1 + "," + data.z_Ml + "," + data.z_Ma + "," + data._len1 + "," + data._len2 + "," + data._len3 + "," + data._Stu + "," + data._Dum + ","

Вы создаете строку с более чем 70 строками без использования класса StringBuilder.
еще хуже то, что вы строите эту строку для подачи переменной StringBuilder.
Вы значительно улучшите скорость и объем памяти, подавая каждую часть непосредственно в переменную StringBuilder.
builder.Append(data._Id + ",");
builder.Append(quote + data._Na1 + quote + ",");
builder.Append(data._Sche + ",");
...