Вверх ↑
Этот топик читают: Гость
Ответов: 875
Рейтинг: 322
#1: 2009-01-02 15:37:47 ЛС | профиль | цитата
Потребовалось выдернуть 9 разных значений из диапазона 0-40. Столкнулся с непоняткой. В пределах одинаковой разрядности выборка происходит, но если пытаться выдернуть значение между допустим 8 и 12 то все, приплыли, тоже самое и с другими порядками. Вопрос: это действительно так или это мои глюки?code_11157.txt
карма: 1

0
файлы: 1code_11157.txt [561B] [272]
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2009-01-02 15:44:58 ЛС | профиль | цитата
IF как элемент универсальный при подачи первым аргументом строки сравнивает не их значения, а их длины. Чтобы такого не происходило надо ставить конвертор


Add(Convertor,2025700,126,189)
{
Mode=1
}

карма: 27
0
Ответов: 875
Рейтинг: 322
#3: 2009-01-02 15:50:44 ЛС | профиль | цитата
Спасибо Dilma, все работает.
карма: 1

0
Ответов: 2125
Рейтинг: 159
#4: 2009-01-02 15:55:31 ЛС | профиль | цитата
Dilma писал(а):
IF как элемент универсальный при подачи первым аргументом строки сравнивает не их значения, а их длины

Честно говоря, эта функциональность как заноза в жопе. Может добавить свойство - тип сравнения строк? По умолчанию - как в предыдущих версиях, сравнивать длину, а другой тип - по алфавиту.
карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#5: 2009-01-02 15:59:46 ЛС | профиль | цитата
tsdima писал(а):
По умолчанию - как в предыдущих версиях, сравнивать длину, а другой тип - по алфавиту.

Интересно, а как ты себе это представляешь
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#6: 2009-01-02 16:43:21 ЛС | профиль | цитата
tsdima, да я вообще что-то сомневаюсь в полезности такой функциональности. Предлагаю убрать ее совсем, а строковые аргументы приводить к типу real.
карма: 27
0
Ответов: 2125
Рейтинг: 159
#7: 2009-01-03 00:18:44 ЛС | профиль | цитата
А как-же сравнивать строки? Почему сравнивается длина, а не содержимое? Если уж ...
Dilma писал(а):
IF как элемент универсальный

карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#8: 2009-01-03 01:00:35 ЛС | профиль | цитата
tsdima писал(а):
А как-же сравнивать строки?

В таком случае, нужно делать компонент, сравнивающий строковые параметры, а то мы глухо повиснем без такого функционала.
Или, все же, доделать If
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#9: 2009-01-03 01:17:27 ЛС | профиль | цитата
tsdima писал(а):
Почему сравнивается длина, а не содержимое?

если для строк сделать сравнение не по длинне, а аналогично StrCat в Delphi или strcmp в сях, то ситуация будет ничуть не лучше. Хотя и полезность такого функционирования будет выше.
карма: 27
0
Разработчик
Ответов: 26305
Рейтинг: 2146
#10: 2009-01-03 01:21:06 ЛС | профиль | цитата
Dilma писал(а):
или strcmp в сях

И что мешает нам это сделать отдельным компонентом
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#11: 2009-01-03 01:29:19 ЛС | профиль | цитата
nesco, ничто не мешает. Вопрос-то в том, что делать с IF. Чтобы оставить совместимость с решениями, где строки сравниваются на равенство к типу real нужно приводить аргументы только тогда, когда условие отлично от "=" - в таком случае все равно, что сравнивать.
карма: 27
0
Разработчик
Ответов: 26305
Рейтинг: 2146
#12: 2009-01-03 01:42:04 ЛС | профиль | цитата
Dilma писал(а):
Вопрос-то в том, что делать с IF

Может лучше ничего не делать, а оставить "как есть".
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#13: 2009-01-03 01:47:44 ЛС | профиль | цитата
а как же с
tsdima писал(а):
Честно говоря, эта функциональность как заноза в жопе.

быть
карма: 27
0
Разработчик
Ответов: 26305
Рейтинг: 2146
#14: 2009-01-03 02:00:00 ЛС | профиль | цитата
Да я уже давно думал -- каким это боком If относится к строкам Не лучше ли сделать отдельно strcmp во вкладке "Строки", возможно, и вопросов меньше будет
карма: 22

0
Ответов: 2125
Рейтинг: 159
#15: 2009-01-03 16:12:10 ЛС | профиль | цитата
Dilma писал(а):
строковые аргументы приводить к типу real

Кто мешает сделать третий тип сравнения строк - "как числа с плавающей точкой"?
Всё-таки мне кажется, что лучше сделать свойство "тип сравнения строковых данных", по умолчанию - длины строк, для совместимости.
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)