Использование Escape char и Text Enclosure

Как использовать Escape char и Text Enclosure в компоненте tFileOutputDelimited и как мы можем их использовать?

Заранее спасибо...

1 ответ

Решение

Чтобы ответить на ваш вопрос, рассмотрим приведенный ниже пример из файла CSV

bookId,bookname,description,authorname
1,Grammer,book that has details about grammer,author1
2,Special Characters, book that describes about some escape characters like \", punctuations and special characters ,etc.,author2
3,Mathematics, book that has mathematical operations like addition +, subtraction -, multiplication *, division / etc, author3

Я создал простую работу, как показано ниже

В приведенном выше примере символ запятой "," это разделитель. Но между данными есть запятые.

Данные, которые записываются в файл CSV, будут выглядеть следующим образом:

Теперь, когда я читаю данные из этого файла, я получаю данные ниже

.------+------------------+-------------------------------------------------------+-------------------------------------.
|                                                       tLogRow_3                                                       |
|=-----+------------------+-------------------------------------------------------+------------------------------------=|
|bookId|bookName          |description                                            |author                               |
|=-----+------------------+-------------------------------------------------------+------------------------------------=|
|1     |Grammer           |book that has details about grammer                    |author1                              |
|2     |Special Characters|book that describes about some escape characters like "| punctuations and special characters |
|3     |Mathematics       |book that has mathematical operations like addition +  | subtraction -                       |
'------+------------------+-------------------------------------------------------+-------------------------------------'

Если вы заметили, некоторые данные отсутствуют в журнале для "author" колонна

Это из-за запятой между данными. Чтобы избежать этого Text Enclosure опция используется. Также в данных есть экранирующий символ, который \", В файле он будет напечатан как ", Если Text Enclosure имеет значение как """ тогда вам нужно убежать от персонажа " который присутствует внутри данных. Для этого вы должны использовать Escape char вариант, как показано ниже

Теперь вывод, который я получил

Когда я читаю эти данные, я получаю данные, как показано ниже,

.------+------------------+-------------------------------------------------------------------------------------------------------+-------.
|                                                                tLogRow_3                                                                |
|=-----+------------------+-------------------------------------------------------------------------------------------------------+------=|
|bookId|bookName          |description                                                                                            |author |
|=-----+------------------+-------------------------------------------------------------------------------------------------------+------=|
|1     |Grammer           |book that has details about grammer                                                                    |author1|
|2     |Special Characters|book that describes about some escape characters like ", punctuations and special characters ,etc.     |author2|
|3     |Mathematics       |book that has mathematical operations like addition +, subtraction -, multiplication *, division / etc.|author3|
'------+------------------+-------------------------------------------------------------------------------------------------------+-------'

Если вы заметили, данные не будут потеряны.

Надеюсь, это поможет вам.

Другие вопросы по тегам