delete освобождает память, но не изменяет ее и не обнуляет. Тем не менее вы не должны получать доступ к освобожденной памяти.
Да, необходимо перенестись в кавычках:
"some value
over two lines",some other value
От этот документ , который является общепринятым стандартом CSV:
поле А, которое содержит встроенные разрывы строки, должно быть окружено двойными кавычками
Упоминание было сделано здесь стандарта для CSV. Мне было бы интересно знать больше об этом - единственные стандарты, о которых я знаю,
независимо от того, что Excel принимает
наиболее распространенный вариант csv там, который является Excel совместимый, позволит встроенные новые строки, пока поле окружается двойными кавычками.
foo,bar,"blah blah
more blah blah",baz
или
foo,bar,"blah blah
more blah blah"
или
"blah blah
more blah blah",baz
все допустимы. Этот механизм также допускает встроенные запятые.
Используя кавычки вокруг текстовых полей без встроенных новых строк (или запятые) прекрасен также. Если сам текст содержит двойную кавычку затем, механизм для выхода из него должен соединить два, например.
foo,bar,"this person said ""blah blah
more blah blah""",baz
Запись csv читателя, который обрабатывает, это правильно может быть хитро (особенно при доверии регулярным выражениям).
Я не думаю, что это - часть стандарта (если даже существует один), но Вы могли бы использовать стандартный выход C-стиля, т.е. закодировать \r\n.
Имеют в виду, однако, что, если Вы делаете это, необходимо также закодировать символ ESC - т.е. \урожаи \после декодирования.