Подписи

MapInfo, MapBasic
Ответить
kasandra
Активный участник
Сообщения: 145
Зарегистрирован: 09 апр 2014, 11:33
Репутация: 2

Подписи

Сообщение kasandra »

Нужно вывести подпись на карту в два ряда. В таблице в одной ячейке она хранится в следующем виде : "Королевская сельская рада", а вывести нужно : "Королевская" а под низом "сельская рада". Как можно это сделать, не разбивая значение на два столбца?
Аватара пользователя
ginpetr
Завсегдатай
Сообщения: 385
Зарегистрирован: 21 июн 2011, 12:07
Репутация: 140
Откуда: Орск
Контактная информация:

Re: Подписи

Сообщение ginpetr »

Как много слов ожидается в названиях? И делить нужно пополам?
thegeo
Активный участник
Сообщения: 161
Зарегистрирован: 17 янв 2012, 18:51
Репутация: 74

Re: Подписи

Сообщение thegeo »

Попробуйте использовать следующее выражение
Left$ (Name,InStr(1,Name,chr$(32))) & chr$(10) & Right$ (Name,(len(Name)-InStr(1,Name,chr$(32))))
Здесь Name имя поля. Строка из этого поля будет разделена по первому символу пробела.
Аватара пользователя
ginpetr
Завсегдатай
Сообщения: 385
Зарегистрирован: 21 июн 2011, 12:07
Репутация: 140
Откуда: Орск
Контактная информация:

Re: Подписи

Сообщение ginpetr »

Можно предусмотреть наличие строк из одного слова, чтоб не было переноса на другую строку

Left$ (Name,InStr(1,Name,chr$(32))) & left$(chr$(10),InStr(1,Name,chr$(32))) & Right$ (Name,(len(Name)-InStr(1,Name,chr$(32))))
kasandra
Активный участник
Сообщения: 145
Зарегистрирован: 09 апр 2014, 11:33
Репутация: 2

Re: Подписи

Сообщение kasandra »

Спасибо огромное!
yurik1989
Новоприбывший
Сообщения: 14
Зарегистрирован: 31 май 2021, 14:58
Репутация: 0
Откуда: Минск

Re: Подписи

Сообщение yurik1989 »

thegeo писал(а): 17 июл 2014, 22:16Попробуйте использовать следующее выражение
Left$ (Name,InStr(1,Name,chr$(32))) & chr$(10) & Right$ (Name,(len(Name)-InStr(1,Name,chr$(32))))
Здесь Name имя поля. Строка из этого поля будет разделена по первому символу пробела.
При использовании данного выражения появляется ошибка: InStr: неправильный тип аргумента 2. У первого поля Тип Целое, у второго поля - Десятичное
thegeo
Активный участник
Сообщения: 161
Зарегистрирован: 17 янв 2012, 18:51
Репутация: 74

Re: Подписи

Сообщение thegeo »

yurik1989 писал(а): 03 янв 2022, 12:11При использовании данного выражения появляется ошибка: InStr: неправильный тип аргумента 2. У первого поля Тип Целое, у второго поля - Десятичное
yurik1989, нужно внимательно смотреть условия использования
yurik1989 писал(а): 03 янв 2022, 12:11Здесь Name имя поля. Строка из этого поля будет разделена по первому символу пробела.
Т.е. предполагается что в поле Name хранятся строки следующего вида
“115 0.9”, “115a 1.2”
yurik1989
Новоприбывший
Сообщения: 14
Зарегистрирован: 31 май 2021, 14:58
Репутация: 0
Откуда: Минск

Re: Подписи

Сообщение yurik1989 »

thegeo писал(а): 17 июл 2014, 22:16Попробуйте использовать следующее выражение
Left$ (Name,InStr(1,Name,chr$(32))) & chr$(10) & Right$ (Name,(len(Name)-InStr(1,Name,chr$(32))))
Здесь Name имя поля. Строка из этого поля будет разделена по первому символу пробела.
Может есть какая-то возможность, чтобы верхняя строка была с подчеркиванием (чтобы общий вид был как у дроби)? Спасибо
gamm
Гуру
Сообщения: 4170
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Подписи

Сообщение gamm »

теоретических в последних Мапинфах есть стиль с подчеркиванием, но всего текста. Если только сделать два слоя с надрисями с вертикальным смещением второго слоя (и подчеркивание, и смещение задаются в стиле), и вывести оба. Но при изменении масштаба может поехать.
Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя