|
Сокращение поля
|
|||
---|---|---|---|
#18+
Есть таблица табл. в ней поле pol1 значения поля pol1 длинные. Как сделать так чтобы выводились только 40 символов из этого поля, а остальное откидывалось ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 13:45 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
вернее сделать так, если значение поля больше чем 45 то выводить 45 символов, а остальное откидывать ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 13:46 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
Андрей8989, LEFT(pol1, 45) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 14:06 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
IgorNG, задача немного поменялась. печать из этой dbf идет на матричном принтере. максимальная длина значения 40 символов, как можно сделать следующее. надо на самой ближней к максимальной длине согласной букве урезать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 14:10 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
или же так надо на самом ближнем к максимальной длине пробеле её урезать ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 14:13 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
Андрей8989, wordnum в цикле. Наращиваешь строку, пока длина(строка+следующее слово) не выйдет за пределы ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 14:33 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
alextashk, не могли бы вы пример показать? Вот есть строка длиною 60 символов, допустимое 40. Надо найти ближайший к длине 40 пробел и урезать строку до этого символа. Я не пойм как через wordnum его делать тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 14:44 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
написал так: allt(substr(tab.pol1,1,atc('',tab.pol1,2))) но иногда не выводит ничего вообще.. почему так? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 15:45 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
Андрей8989, Есть функция mline() для Вашей задачи ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 15:47 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
Андрей8989написал так: allt(substr(tab.pol1,1,atc('',tab.pol1,2))) но иногда не выводит ничего вообще.. почему так? Потому, что в поле может не быть вторго пробела. Тогда atc() вернет 0 Вам надо искать не слева-направа, а наоборот, справа-налево. Т.е. отрезать 41 символ и искать первый пробел справа. Нужно отрезать именно 41, чтобы учесть возможный пробел именно в 41 символе В одну строчку это получится примерно так Код: sql 1.
Поскольку пробелов может вообще не быть, то в этом случае следует просто "тупо" взять первых 40 символов. Для этого и используется функция EVL() Если поле pol1 имеет тип VarChar, то вместо left() надо использовать padr() ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 16:19 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
ВладимирМ, попробовал так и с left вообще ничего не выводит Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 16:26 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
вместо tab и pol1 написал paket и namm ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 16:27 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
если вместо EVL написать EVALUATE пишет типа много аргументов ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 16:36 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
Что значит "не выходит"? Код: sql 1. 2.
PS: Функция EVL() была введена в VFP8. Она не имеет никакого отношения к функции evaluate(). Если у Вас версия младше VFP9, то об этом надо сообщать сразу, а не ждать, пока подут ошибки из-за не известных функций. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 16:45 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
Если у Вас версия младше VFP8, то функцию EVL() можно заменить такой конструкцией Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 16:49 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
ВладимирМ, я в 6-ом фокспро работаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 16:55 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
Спасибо. заработало. Сейчас буду разбирать, чтобы в дальнейшем сам уже мог. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 16:58 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
ВладимирМ, Правильно ли я понял этот код? Код: sql 1.
1. Берем 41 символ из строки и ищем в нем последнюю позицию пробела: Код: sql 1.
2. Берем 41 символов из строки, и проверяем если 41-й символ не пробел: Код: sql 1.
3. Условие если 41-й символ не пробел то берем 40 символов, а если пробел то 41 символов так? Если не так то исправьте пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 19:52 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
Андрей89891. Берем 41 символ из строки и ищем в нем последнюю позицию пробела: Код: sql 1.
Да. Правильно Андрей89892. Берем 41 символов из строки, и проверяем если 41-й символ не пробел: Код: sql 1.
Нет. Не правильно. В п.1 Вы правильно написали, что делает функция RAT(). Она возвращает номер позиции с которой начинается искомая подстрока. В данном случае пробел. Поиск выполняется справ-налево, но номер позиции отсчитывается с левого края. Но если функция RAT() не найдет указаный символ, то она вернет значение 0, как признак того, что ничего не нашли. Другими словами, данный фрагмент означает, что в первых 41 символах пробела нет. Идут подряд 41 символ вообще без пробелов. Соответственно, если 41 символ идет без пробелов, то просто формально отрезаем первые 40 символов, какие попадуться. Без анализа Наверное, будет проще, если написать преобразование не в одну строку, а последовательно Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 20:16 |
|
Сокращение поля
|
|||
---|---|---|---|
#18+
Андрей8989, Если уж быть совсем точным, то ВладимирМ Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Если вам нужно для вывода на печать, то почему бы этот текст не оформить в виде функции? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 09:17 |
|
|
start [/forum/topic.php?fid=41&msg=38092121&tid=1583243]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 166ms |
0 / 0 |