Имя: Пароль:
1C
1С v8
Убрать некорректный символ из файла
0 Мелифаро
 
29.11.17
13:42
Есть ситуация - из интернет-банкинга выгружаются платежки в формате 1С. Вроде бы все замечательно, однако они не загружаются. Выяснил, почему - в назначении платежа в случайных местах строки ставится символ LF (без CR). Блокнот, что характерно, этого перевода строки не видит и визуально все замечательно, выявил косяк через Notepad++.
При прочтении файла через ТекстовыйДокумент() 1С по какой-то причине заменяет эти одиночные LF на CR LF, в результате чего в тексте появляются ненужные переносы строк, ломающие структуру формата файла.

Вопрос - есть ли какой-то иной способ чтения файла (ИзвлечениеТекста не предлагать, там UTF-8 не поддерживается), не искажающий изначальный набор байт вместе со спецсимволами? Ну, чтобы эти одиночные LF убрать, а потом уже с текстом работать...
1 Fragster
 
гуру
29.11.17
13:49
(0) не заменяет, а интерпретирует как новую строку. сделай СтрЗаменить(Текст, Символ(10), "") // ну, или 13 :)
и будь счастлив
2 SSSSS_AAAAA
 
29.11.17
13:54
(0) Сначала замени все LF на какой-нить спецсимвол, который в тексте точно не встречается, а потом сочетание этого символа с CR замени на CRLF. Той же СтрЗаменить().
3 SSSSS_AAAAA
 
29.11.17
13:55
(2) А потом спецсимвол на пустую строку.
4 Fragster
 
гуру
29.11.17
14:27
(2) да пофиг, текстовыйдокумент что #10#13, что #13, что #10 будет воспринимать как перевод строки
5 Мелифаро
 
30.11.17
05:07
(1)(2) Проблема в том, что 1С при чтении через ТекстовыйДокумент() сама вместо одиночного LF подставляет CR LF. То есть в прочитанном файле уже этих "одиночных" LF нет. А в исходном - есть. Такая вот ерунда.
6 Мелифаро
 
30.11.17
05:34
+(5) То бишь да, в (1) верно, она интерпретирует LF как CR LF безусловно. Вопрос в том, есть ли способ извернуться и прочитать файл побайтно как он есть без лишних интерпретаций?