Это ещё ладно. У меня был такой случай. В форме поле типа TEXT с атрибутом REQ. Некий "продвинутый" пользователь несколько раз нажимает ENTER на этом поле. И сохраняет данные. Естественно потом вопросы. В поле вроде бы ничего нет, а запись есть. Пришлось делать ручной костыль. Хорошего решения не нашёл. Вроде хотелось чтобы где-то внутри была опция типа "невидимые символы считать за пусто".
clip в report не убирает пробелы
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 5087
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 23 раза
clip в report не убирает пробелы
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7735
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 73 раза
clip в report не убирает пробелы
У нас есть вот такая древняя функция.
Код: Выделить всё
! Убрать нажатие педали (до 30) в TEXT: GetStrDA(TextField)
GetStrDA PROCEDURE (*? ISTR_)
Loc:Pos LONG(0)
Code
If Len(Clip(ISTR_)) > 1
Loop 30 times
Loc:Pos = InString(Chr(13) & Chr(10),Clip(ISTR_),1,1)
If Loc:Pos = 0 then Break
elsIf Len(Clip(ISTR_)) = 2 ! Строка <13,10>
ISTR_ = ''
Break
elsIf Loc:Pos = 1
ISTR_ = Clip(Sub(ISTR_,3,Len(Clip(ISTR_)) - 2))
else
ISTR_ = Sub(ISTR_,1,Loc:Pos - 1) & ' ' & Sub(ISTR_,Loc:Pos + 2,Len(Clip(ISTR_)))
end
end
end
ISTR_ = Clip(ISTR_)
Make Clarion Great Again !
-
- ✯ Ветеран ✯
- Сообщения: 5087
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 23 раза
clip в report не убирает пробелы
Понятно. Руками перебирать символы. Хотелось бы универсальной функции и ещё зашитой в недра языка. Ваша функция проверяет только на перевод строки. А ещё есть куча невидимых символов, например, TAB.
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7735
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 73 раза
clip в report не убирает пробелы
Понимаете в чём проблема ... здесь не может быть универсальной (и тем более зашитой) функции.
Это мы сами решили, что давить педаль (или TAB) это плохо. На самом деле нет - просто тупь, но не ошибка.
У нас есть более "мощные" функции нормализации строк для того же XML или при вставки копипастом их XLSX ...
но это уже совсем другая история про Пяточка и Кролика
Это мы сами решили, что давить педаль (или TAB) это плохо. На самом деле нет - просто тупь, но не ошибка.
У нас есть более "мощные" функции нормализации строк для того же XML или при вставки копипастом их XLSX ...
но это уже совсем другая история про Пяточка и Кролика
Вообще-то нет никакого перебора. INSTRING() - это поиск. Один отрицательный ответ поиска и на выход ...
Make Clarion Great Again !
- Губин Игорь
- Шубуршун
- Сообщения: 2451
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 2 раза
- Поблагодарили: 24 раза
clip в report не убирает пробелы
Элементарно. Проверять в цикле первые два символа на совпадение с <13><10> и сдвигать всё влево на две позиции. С конечными чуть муторней, но аналогично.
Это я только кажусь дураком! На самом деле я полный идиот!
- morkovin
- Ветеран
- Сообщения: 910
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
- Контактная информация:
clip в report не убирает пробелы
У меня была такая заморочка с юзерами - пытались форматировать в TEXT-поле. Сделал кнопку ПОКАЗАТЬ НЕВИДИМЫЕ СИМВОЛЫ (кроме пробела) и объяснил, что программа автоматом делает переносы и пр. в очетах, в противном случае будут всё перебивать сами.Элементарно. Проверять в цикле первые два символа на совпадение с <13><10> и сдвигать всё влево на две позиции. С конечными чуть муторней, но аналогично.
WBR, morkovin
- Игорь Столяров
- Ветеран движения
- Сообщения: 7735
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 73 раза
clip в report не убирает пробелы
Вы же назвали её: "ВСЕМ ВЫЙТИ ИЗ СУМРАКА !" ?
Ну пожалуйста ...
Make Clarion Great Again !
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4933
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 44 раза
clip в report не убирает пробелы
Такое еще может быть при копировании из офисных пакетов или интернета.
C6/C11, ШВС, tps/btrieve.
- Губин Игорь
- Шубуршун
- Сообщения: 2451
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 2 раза
- Поблагодарили: 24 раза
clip в report не убирает пробелы
Про копирование из интернета помолчим... Буквы спецсимволами это что-то
Это я только кажусь дураком! На самом деле я полный идиот!
- Губин Игорь
- Шубуршун
- Сообщения: 2451
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 2 раза
- Поблагодарили: 24 раза
clip в report не убирает пробелы
Если честно, то у меня в классе есть стандартная процедура "очистки" текста от всякой лабуды. Написал один раз - пользуешься всегда. Вырезать очень сложно, т.к. она полностью интегрирована в класс и содержит кучу настроек и таблиц для разных вариантов. Но суть примитивная - находим символ/сочетание символов и удаляем/подменяем/сдвигаем
Это я только кажусь дураком! На самом деле я полный идиот!
-
- ✯ Ветеран ✯
- Сообщения: 5087
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 23 раза
clip в report не убирает пробелы
Я полностью с Вами согласен. Не надо исправлять эту "тупь". А может это сделано пользователем специально. Например для выравнивания текста по вертикали в каком-нибудь бланке. Я так понимаю приведённая Вами функция удаляет перевод строки в начале, в остальных местах переделывает в пробел. На мой взгляд это чересчур. Нормальному пользователю это может сильно не понравиться.Игорь Столяров писал(а): ↑15 Апрель 2024, 21:55 Понимаете в чём проблема ... здесь не может быть универсальной (и тем более зашитой) функции.
Это мы сами решили, что давить педаль (или TAB) это плохо. На самом деле нет - просто тупь, но не ошибка.
"Универсальность" меня бы устроила для преобразования "пустого" текста. Сейчас нет стандартного механизма ни на клиенте ни на сервере решить этот вопрос. На мой взгляд нехорошо когда есть поле с требованием обязательности, а в нём присутствуют только невидимые символы. Как вариант - отображать их значками. Но это тоже нестандарт.
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7735
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 73 раза
clip в report не убирает пробелы
Как я уже говорил - любое решение здесь будет специфично и неполно.
Приведённый мною простой пример хорошо работает на многострочных полях, когда пользователь
давит педаль для перехода на новую строку в поле (сейчас ENTER на таких полях вообще забанили).
Ну или при вставке с мусором из Word / Excel через ClipBoard.
Но конечно здесь не рашаются все вопросы. Некоторые исхитряются ставить дефис для переноса строк.
Начинаешь обрабатывать дефис в конце строки перед переносом и склеивать слова - появляются что-то вроде:
Код: Выделить всё
А фамилия моя Бендер-
Задунайский, сказал Остап
Make Clarion Great Again !
-
- ✯ Ветеран ✯
- Сообщения: 5087
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 23 раза
clip в report не убирает пробелы
У нас есть места, где пользователи пишут много (фактически инструкции). Даже делают так - В Ворде всё набирают, немного форматируют, проверяют орфографию, пунктуацию и потом копипастом загоняют в поле. Ну никак нельзя автоматом исправлять их сочинения.
Кстати, Вашу функцию можно оптимизировать. Каждый раз instring с первого поля не долго? Да и тридцать раз зачем? Можно бесконечный цикл. Всё равно выход по break.
Кстати, Вашу функцию можно оптимизировать. Каждый раз instring с первого поля не долго? Да и тридцать раз зачем? Можно бесконечный цикл. Всё равно выход по break.
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7735
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 73 раза
clip в report не убирает пробелы
Так это же думать тогда надо ...
А вот это уже опыт, сын ошибок трудных. План Б для выхода должен быть всегда ...
Make Clarion Great Again !