Вход | Регистрация


Словил такой баг - в строке символ STX (с кодом 2)

Словил такой баг - в строке символ STX (с кодом 2)
Я
   RomaH
 
16.11.17 - 14:12
Работаю с лабораторным анализатором
обмен через текстовые файлы и базу данных программно-аппаратного

и вот через год работы аппарат пишет в БД и в файл такой символ

1С его в коде нормально обрабатывает - присваивает строковому реквизиту и вываливается в ошибку при попытке записать документ в базу 1С

модуль формы документа:

        СтрокаДанных = СтрСоединить(МасивДанных,"&");
        
        СтрокаТЧ.Результаты = СтрокаДанных;
        
    КонецЦикла;
    
    Записать();

СтрокаТЧ.Результаты содержит символ "STX"

на Записать() выдает ошибку - что-то там про недопустимый символ XML
 
 
   NorthWind
 
1 - 16.11.17 - 14:46
ну в принципе логично. XML это текстовый файл, т.е. там должен быть человекочитаемый текст. Ни в одной кодировке символ с кодом 2 не относится к текстовым человекочитаемым.
   H A D G E H O G s
 
2 - 16.11.17 - 14:49
Функция ЗаменитьНедопустимыеСимволы(Текст) Экспорт
    ПозицияСимвола=1;
    Пока Истина Цикл
        ПозицияСимвола=НайтиНедопустимыеСимволыXML(Текст,ПозицияСимвола);
        Если ПозицияСимвола=0 Тогда
            Прервать;
        КонецЕсли;
        Текст=Сред(Текст,1,ПозицияСимвола-1)+"&"+Строка(КодСимвола(Сред(Текст,ПозицияСимвола,1)))+Сред(Текст,ПозицияСимвола+1);
    КонецЦикла;
КонецФункции
   NorthWind
 
3 - 16.11.17 - 14:49
вам нужно при записи документа этот символ заменить уникальной последовательностью других, а при чтении сделать наоборот. Или  использовать бинарный файл.
   RomaH
 
4 - 16.11.17 - 15:10
(2) это конечно хорошо
но получается в любой строке которую пишем в базу и которая получается из файла надо делать такую проверку
   H A D G E H O G s
 
5 - 16.11.17 - 15:10
(4) ИИииии?
   RomaH
 
6 - 16.11.17 - 15:14
(5) да как-то криво
в отладчике я эту строку вижу
символы 1С как-то интерпретирует

а вот в базу писать не хочет...
   alxxsssar
 
7 - 16.11.17 - 15:15

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует