В поле текст только переводы строк. Как защитититься?
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
В поле текст только переводы строк. Как защитититься?
Некоторые несознательные пользователи случайно или неслучайно сохраняют "пустой текст" где есть только переводы строк. Их не видно после сохранения, кажется, что поле пустое. На уровне атрибута Req защиты нет. На уровне БД защиты тоже нет. Есть какие-нибудь стандартные решения? Чтобы велосипед не изобретать.
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
В поле текст только переводы строк. Как защитититься?
На кнопку СОХРАНИТЬ повесить незамысловатый код ?
Ну или написать функцию, которая в цикле будет убирать из строки завершающие символы <13,10> ...
Код: Выделить всё
XYZ:TextField = Clip(XYZ:TextField)
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
В поле текст только переводы строк. Как защитититься?
Такой проблемы не было. А так я использую общую библиотеку функций, в которую собираю все, что не связано со словарем. Написал процедуру/функцию один раз и используй в любом проекте как "часть языка".
C6/C11, ШВС, tps/btrieve.
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1376
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
В поле текст только переводы строк. Как защитититься?
А чем мешают эти символы и почему их не должно быть?
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
В поле текст только переводы строк. Как защитититься?
Clip не убирает коды 13 и 10. Толку от clip никакого. Можно функцию написать. Но некрасиво. Как временно решение сгодится, для защиты от конкретного пользователя (сколько лет работаю, первый раз с таким сталкиваюсь). Но хотелось бы универсальное решение. Что-нибудь зашить в классы, например в момент валидации полей, при проверке на атрибут Req.Игорь Столяров писал(а): ↑24 Август 2018, 12:54 На кнопку СОХРАНИТЬ повесить незамысловатый код ?
Код: Выделить всё
XYZ:TextField = Clip(XYZ:TextField)
Ну или написать функцию, которая в цикле будет убирать из строки завершающие символы <13,10> ...
Получается, что кроме этих символов в поле ничего нет. И пользователи (а также их начальники) жалуются, что программа сохранила запись с пустым полем, хотя было строго указано, что это поле обязательное. А поскольку эти символы не видны, то и сказать даже "сам дурак" нельзя.
We are hard at work… for you.
В поле текст только переводы строк. Как защитититься?
У меня так...
Код: Выделить всё
............................................
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 ('')
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
В поле текст только переводы строк. Как защитититься?
То, что надо. Осталось подумать куда это зашить.
We are hard at work… for you.