В поле текст только переводы строк. Как защитититься?

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

В поле текст только переводы строк. Как защитититься?

Сообщение kreator »

Некоторые несознательные пользователи случайно или неслучайно сохраняют "пустой текст" где есть только переводы строк. Их не видно после сохранения, кажется, что поле пустое. На уровне атрибута Req защиты нет. На уровне БД защиты тоже нет. Есть какие-нибудь стандартные решения? Чтобы велосипед не изобретать.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7328
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

В поле текст только переводы строк. Как защитититься?

Сообщение Игорь Столяров »

На кнопку СОХРАНИТЬ повесить незамысловатый код ?

Код: Выделить всё

  XYZ:TextField = Clip(XYZ:TextField)
Ну или написать функцию, которая в цикле будет убирать из строки завершающие символы <13,10> ...
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

В поле текст только переводы строк. Как защитититься?

Сообщение finsoftrz »

Такой проблемы не было. А так я использую общую библиотеку функций, в которую собираю все, что не связано со словарем. Написал процедуру/функцию один раз и используй в любом проекте как "часть языка".
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

В поле текст только переводы строк. Как защитититься?

Сообщение RaFaeL »

А чем мешают эти символы и почему их не должно быть?
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

В поле текст только переводы строк. Как защитититься?

Сообщение kreator »

Игорь Столяров писал(а): 24 Август 2018, 12:54 На кнопку СОХРАНИТЬ повесить незамысловатый код ?

Код: Выделить всё

XYZ:TextField = Clip(XYZ:TextField)

Ну или написать функцию, которая в цикле будет убирать из строки завершающие символы <13,10> ...
Clip не убирает коды 13 и 10. Толку от clip никакого. Можно функцию написать. Но некрасиво. Как временно решение сгодится, для защиты от конкретного пользователя (сколько лет работаю, первый раз с таким сталкиваюсь). Но хотелось бы универсальное решение. Что-нибудь зашить в классы, например в момент валидации полей, при проверке на атрибут Req.
RaFaeL писал(а): 24 Август 2018, 13:06 А чем мешают эти символы и почему их не должно быть?

Получается, что кроме этих символов в поле ничего нет. И пользователи (а также их начальники) жалуются, что программа сохранила запись с пустым полем, хотя было строго указано, что это поле обязательное. А поскольку эти символы не видны, то и сказать даже "сам дурак" нельзя.
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

В поле текст только переводы строк. Как защитититься?

Сообщение Yufil »

У меня так...

Код: Выделить всё

............................................
Clips                 PROCEDURE(String),String          ! Отрубание хвоста строки 
............................................
CLIPS                PROCEDURE  (LOC:S)                    ! Declare Procedure
I  Long
J  Long

  CODE
        J=LEN(LOC:S)
        LOOP I=J TO 1 BY -1
         IF ~INList(LOC:S[I],' ','<9>','<13>','<10>')
            RETURN LOC:S[1:I]
         END
        END
        RETURN ('')
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

В поле текст только переводы строк. Как защитититься?

Сообщение kreator »

Yufil писал(а): 24 Август 2018, 15:37У меня так...
То, что надо. Осталось подумать куда это зашить.
We are hard at work… for you. :)
Ответить