Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Форум MMB » Всё о программе Multimedia Builder » Сценарии в MMB » Проверка переменных (Как проверить, нет ли в переменной переноса строк)
Проверка переменных
as-masterДата: Воскресенье, 30 Сентября 2007, 20:50 | Сообщение # 1
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Известно, что в Эдитбокс невозможно ввести больше одной строки.
Это если ручками вводить. А вот если вставить копированием,
то можно - переносы строк будут отображаться в виде двух
символов-квадратиков.

Так вот. Если эту переменную вы сохраняете в файл, и особенно
если добавляете в массив, то переносы строк, попавшие в переменную,
испортят вам всю картину, в смысле полностью нарушат работу программы.

Чтобы контролировать, не попали ли в Эдитбокс переносы строк, я написал
простой сценарий, который запускается каждый раз при иэменении
переменной string$ (прописывается его запуск в свойствах эдитбокса):

Code
enter$=CHR(13)
pos=POS(enter$,string$)
If (pos>0) Then
   Message("Ахтунг!!!","")
   Return("")
End


Да пребудет с вами ММВ!
 
toizyДата: Понедельник, 01 Октября 2007, 13:36 | Сообщение # 2
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
А если нужно поудалять все переносы каретки, то
Code
br$=CHR(13)+CHR(10)
p=POS(br$, s$)
If (p<>0) Then
  StrDel(s$, p, 2)
End


Жизнь оказалась не такой уж и забавной, как поначалу...
 
as-masterДата: Воскресенье, 14 Октября 2007, 14:39 | Сообщение # 3
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Блин, да!!!
Как я об этом не подумал!

Только ты забыл написать вот что:

s$=StrDel(s$,p,2)

Правда, ты чуть не прав - надо не просто удалить, а вставить туда пробел.
Иначе два слова сольются в одно, скорее всего.
То есть использовать функцию StrChange():

Code
br$=CHR(13)+CHR(10)
space$=' '
s$=StrChange(s$,br$,space$)

и без всяких условий If ... Then

Причём, что любопытно, с помощью только ОДНОЙ команды StrChange()
осуществляются сразу ВСЕ замены подстроки в строке, сколько бы их не было! :)


Да пребудет с вами ММВ!
 
Форум MMB » Всё о программе Multimedia Builder » Сценарии в MMB » Проверка переменных (Как проверить, нет ли в переменной переноса строк)
  • Страница 1 из 1
  • 1
Поиск: