Страница 2 из 2

clip в report не убирает пробелы

Добавлено: 15 Апрель 2024, 19:32
kreator
talgat55 писал(а): 15 Апрель 2024, 11:40 а операторы долбят на enter и в начале текста и в конце...
Это ещё ладно. У меня был такой случай. В форме поле типа TEXT с атрибутом REQ. Некий "продвинутый" пользователь несколько раз нажимает ENTER на этом поле. И сохраняет данные. Естественно потом вопросы. В поле вроде бы ничего нет, а запись есть. Пришлось делать ручной костыль. Хорошего решения не нашёл. Вроде хотелось чтобы где-то внутри была опция типа "невидимые символы считать за пусто". :)

clip в report не убирает пробелы

Добавлено: 15 Апрель 2024, 20:32
Игорь Столяров
kreator писал(а): 15 Апрель 2024, 19:32 Хорошего решения не нашёл.
У нас есть вот такая древняя функция. :)

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

! Убрать нажатие педали (до 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_)

clip в report не убирает пробелы

Добавлено: 15 Апрель 2024, 21:48
kreator
Понятно. Руками перебирать символы. Хотелось бы универсальной функции и ещё зашитой в недра языка. Ваша функция проверяет только на перевод строки. А ещё есть куча невидимых символов, например, TAB.

clip в report не убирает пробелы

Добавлено: 15 Апрель 2024, 21:55
Игорь Столяров
Понимаете в чём проблема ... здесь не может быть универсальной (и тем более зашитой) функции.
Это мы сами решили, что давить педаль (или TAB) это плохо. На самом деле нет - просто тупь, но не ошибка.

У нас есть более "мощные" функции нормализации строк для того же XML или при вставки копипастом их XLSX ...
но это уже совсем другая история про Пяточка и Кролика :)
kreator писал(а): 15 Апрель 2024, 21:48 Руками перебирать символы.
Вообще-то нет никакого перебора. INSTRING() - это поиск. Один отрицательный ответ поиска и на выход ... ;)

clip в report не убирает пробелы

Добавлено: 15 Апрель 2024, 23:19
Губин Игорь
talgat55 писал(а): 14 Апрель 2024, 17:38 кажется причину понял. Для ввода этой переменной в форме я тоже пользую тулбар text
Оператор вносит вначале не пробел а нажимает несколько раз ввод и похоже записывается символ перевод каретки а не пробел
clip его не удаляет. А как убрать ?
Элементарно. Проверять в цикле первые два символа на совпадение с <13><10> и сдвигать всё влево на две позиции. С конечными чуть муторней, но аналогично.

clip в report не убирает пробелы

Добавлено: 16 Апрель 2024, 9:02
morkovin
Элементарно. Проверять в цикле первые два символа на совпадение с <13><10> и сдвигать всё влево на две позиции. С конечными чуть муторней, но аналогично.
У меня была такая заморочка с юзерами - пытались форматировать в TEXT-поле. Сделал кнопку ПОКАЗАТЬ НЕВИДИМЫЕ СИМВОЛЫ (кроме пробела) и объяснил, что программа автоматом делает переносы и пр. в очетах, в противном случае будут всё перебивать сами.

clip в report не убирает пробелы

Добавлено: 16 Апрель 2024, 9:12
Игорь Столяров
morkovin писал(а): 16 Апрель 2024, 9:02 Сделал кнопку ПОКАЗАТЬ НЕВИДИМЫЕ СИМВОЛЫ
Вы же назвали её: "ВСЕМ ВЫЙТИ ИЗ СУМРАКА !" ?
Ну пожалуйста ... :)

clip в report не убирает пробелы

Добавлено: 16 Апрель 2024, 10:05
finsoftrz
Такое еще может быть при копировании из офисных пакетов или интернета.

clip в report не убирает пробелы

Добавлено: 16 Апрель 2024, 11:29
Губин Игорь
finsoftrz писал(а): 16 Апрель 2024, 10:05 Такое еще может быть при копировании из офисных пакетов или интернета.
Про копирование из интернета помолчим... :facepalm: Буквы спецсимволами это что-то :dizzy:

clip в report не убирает пробелы

Добавлено: 16 Апрель 2024, 11:33
Губин Игорь
Если честно, то у меня в классе есть стандартная процедура "очистки" текста от всякой лабуды. Написал один раз - пользуешься всегда. Вырезать очень сложно, т.к. она полностью интегрирована в класс и содержит кучу настроек и таблиц для разных вариантов. Но суть примитивная - находим символ/сочетание символов и удаляем/подменяем/сдвигаем

clip в report не убирает пробелы

Добавлено: 16 Апрель 2024, 16:07
kreator
Игорь Столяров писал(а): 15 Апрель 2024, 21:55 Понимаете в чём проблема ... здесь не может быть универсальной (и тем более зашитой) функции.
Это мы сами решили, что давить педаль (или TAB) это плохо. На самом деле нет - просто тупь, но не ошибка.
Я полностью с Вами согласен. Не надо исправлять эту "тупь". А может это сделано пользователем специально. Например для выравнивания текста по вертикали в каком-нибудь бланке. Я так понимаю приведённая Вами функция удаляет перевод строки в начале, в остальных местах переделывает в пробел. На мой взгляд это чересчур. Нормальному пользователю это может сильно не понравиться.
"Универсальность" меня бы устроила для преобразования "пустого" текста. Сейчас нет стандартного механизма ни на клиенте ни на сервере решить этот вопрос. На мой взгляд нехорошо когда есть поле с требованием обязательности, а в нём присутствуют только невидимые символы. Как вариант - отображать их значками. Но это тоже нестандарт.

clip в report не убирает пробелы

Добавлено: 16 Апрель 2024, 18:09
Игорь Столяров
kreator писал(а): 16 Апрель 2024, 16:07 в остальных местах переделывает в пробел. На мой взгляд это чересчур.
Как я уже говорил - любое решение здесь будет специфично и неполно.
Приведённый мною простой пример хорошо работает на многострочных полях, когда пользователь
давит педаль для перехода на новую строку в поле (сейчас ENTER на таких полях вообще забанили).
Ну или при вставке с мусором из Word / Excel через ClipBoard.

Но конечно здесь не рашаются все вопросы. Некоторые исхитряются ставить дефис для переноса строк.
Начинаешь обрабатывать дефис в конце строки перед переносом и склеивать слова - появляются что-то вроде:

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

А фамилия моя Бендер-
Задунайский, сказал Остап

clip в report не убирает пробелы

Добавлено: 18 Апрель 2024, 21:46
kreator
У нас есть места, где пользователи пишут много (фактически инструкции). Даже делают так - В Ворде всё набирают, немного форматируют, проверяют орфографию, пунктуацию и потом копипастом загоняют в поле. Ну никак нельзя автоматом исправлять их сочинения. :D
Кстати, Вашу функцию можно оптимизировать. Каждый раз instring с первого поля не долго? Да и тридцать раз зачем? Можно бесконечный цикл. Всё равно выход по break.

clip в report не убирает пробелы

Добавлено: 18 Апрель 2024, 21:53
Игорь Столяров
kreator писал(а): 18 Апрель 2024, 21:46 Каждый раз instring с первого поля не долго?
Так это же думать тогда надо ... ;)
kreator писал(а): 18 Апрель 2024, 21:46 Да и тридцать раз зачем? Можно бесконечный цикл. Всё равно выход по break.
А вот это уже опыт, сын ошибок трудных. План Б для выхода должен быть всегда ... :)