Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / сокращение поля и перенос на другую строку / 16 сообщений из 16, страница 1 из 1
22.01.2013, 13:12
    #38119497
Андрей8989
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
я уже описывал данную проблему, но надо немного изменить ее решение. В общем есть таблица табл. в ней поле pol1, значения поля pol1 длинные. Как сделать так чтобы выводились только 40 символов из этого поля, а остальное откидывалось.

Решение следующее как мне тут помогли:
Код: sql
1.
2.
lcString = replicate('1234 ',9)
?left(m.lcString, IIF(RAT(space(1), left(m.lcString ,41)) = 0, 40, RAT(space(1), left(m.lcString ,41))))



Как сделать так чтобы выводились только 40 символов из этого поля, а остальное выводилось на новой строке. как бы продолжение первой строки?

Например:
Код: sql
1.
2.
перваястрокадо40символов
втораястрокапродолжениепервой
...
Рейтинг: 0 / 0
22.01.2013, 13:18
    #38119507
Андрей8989
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
Какие есть функции чтобы проверить конец строки? надо как я понимаю с 41-го символа до конца строки просто выводить, но не знаю какая функция есть для этого
...
Рейтинг: 0 / 0
22.01.2013, 13:25
    #38119526
Андрей8989
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
Если тупо 60-80 символов выводить правильно ли?

lsstring="qwewqeqweqweqweqweqeqweqweqweqweqweqwe"
?RIGHT(lsstring,80)
...
Рейтинг: 0 / 0
22.01.2013, 13:26
    #38119530
Андрей8989
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
ой нет. неправильно так нельзя
...
Рейтинг: 0 / 0
22.01.2013, 13:27
    #38119536
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
Андрей8989, псевдокод:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
strlen=len(mystring)
chunksize=40

counter=0
do while counter<=strlen
?substr(mystring,chunksize*counter+1,chunksize*(counter+1))
counter+=chunksize
enddo
...
Рейтинг: 0 / 0
22.01.2013, 13:31
    #38119548
Андрей8989
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
tanglir, а можете пояснить в общих чертах?

вот это место
Код: sql
1.
2.
?substr(mystring,chunksize*counter+1,chunksize*(counter+1))
counter+=chunksize
...
Рейтинг: 0 / 0
22.01.2013, 13:33
    #38119554
Андрей8989
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
тогда же можно просто написать substr(поле, 41) и она будет с 41-го символа до конца выделять строку? так нельзя?
...
Рейтинг: 0 / 0
22.01.2013, 13:35
    #38119562
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
Андрей8989, если строка не длиннее 80 символов, то можно и так, да.
...
Рейтинг: 0 / 0
22.01.2013, 13:38
    #38119573
Андрей8989
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
tanglir, если например 100 символов можно же так: на первой строке 40 символов выводить, а на второй с 41 до конца с помощью substr(поле,41)? или она отрезать что-то будет?
...
Рейтинг: 0 / 0
22.01.2013, 14:23
    #38119679
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
Андрей8989, вот это и делает мой код, причём независимо от длины строки.
...
Рейтинг: 0 / 0
22.01.2013, 14:24
    #38119684
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
А, нет, не это. Ну в хелпе же есть про субстр - 3 аргумента - строка, откуда брать, докуда брать. Что там может быть непонятно??
...
Рейтинг: 0 / 0
22.01.2013, 14:30
    #38119703
Андрей8989
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
tanglir, получается, но одна загвоздка при выделении строки. вот выделили первые 40 символов записали во первую строку, а как записать теперь не substr(поле,41) , а вместо 41-го символа ту позицию пробела на котором отрезали остальную часть в первой строке?? а то я пишу substr(поле,41) и у меня в одном случае нормально все, в другом случае одна буква слева во второй строке урезается: вот так получается:

Код: sql
1.
2.
ПСА-ОБЩИЙ (ИММУНОФЕРМЕНТНЫЙ РИДЕР "HUMEN 
RIDER")  КОЛ-ВО: 1  ЦЕНА: 270 руб.  



Код: sql
1.
2.
ПСА-СВОБОДНЫЙ (ИММУНОФЕРМЕНТНЫЙ РИДЕР   
UMEN RIDER")  КОЛ-ВО: 1  ЦЕНА: 540 руб.  



во втором случае вместо UMEN должно быть HUMEN
...
Рейтинг: 0 / 0
22.01.2013, 14:48
    #38119749
Андрей8989
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
написал вот так: проверьте логику, в вышеприведенном случае вроде все хорошо: начиная с пробела на котором обрезали первую строку во второй выводится оставшаяся часть

Код: sql
1.
substr(PAKET.NAMM,IIF(RAT(space(1), left(PAKET.NAMM ,41)) = 0, 40, RAT(space(1), left(PAKET.NAMM ,41))))
...
Рейтинг: 0 / 0
22.01.2013, 15:51
    #38119873
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
Андрей8989Как сделать так чтобы выводились только 40 символов из этого поля, а остальное откидывалось.Это надо так в отчете сделать?
...
Рейтинг: 0 / 0
22.01.2013, 17:31
    #38120091
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
И в отчете и в EditBox на форме FoxPro сам, без дополнительного программирования, организует перенос текста по пробелам. Не надо вообще ничего программировать. Надо только подобрать шрину объекта в зависимости от используемого шрифта. Ну, и высоту выставить в 2..3 строчки.
...
Рейтинг: 0 / 0
22.01.2013, 19:52
    #38120381
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сокращение поля и перенос на другую строку
ВладимирМ, может, ТСу нужен "текстовый" отчёт? Тогда, наверное, стоит взглянуть на getwordnum.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / сокращение поля и перенос на другую строку / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]