Страница: 1 | 2 |
Вопрос: Описание InStr
Добавлено: 23.09.04 13:31
Автор вопроса: RomaVis | ICQ: 266287351
Люди, знаю просьба тупая, но дайте плиз описание функции InStr (сообственно что она делает)
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа:
Keen
ICQ: 284-467-526
Вопросов: 12
Ответов: 25
Профиль | | #1
Добавлено: 23.09.04 13:37
Возвращает номер позиции символа, с которого начинается искомая строка в строке-источнике.
Номер ответа: 2
Автор ответа:
crackoff
ICQ: 156165990
Вопросов: 12
Ответов: 229
Профиль | | #2
Добавлено: 23.09.04 13:40
Ищет первое вхождение подстроки в строке и выдает его подожение.
InStr(1, "omnia meu mecum porto", "mecum") выдаст 11
Первый параметр указывает, с какого места строки искать.
Номер ответа: 3
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #3
Добавлено: 23.09.04 13:57
Ищет одну строку в другой. Если находит, то возвращает начальную позицию искомой строки, иначе 0.
Номер ответа: 4
Автор ответа:
Keen
ICQ: 284-467-526
Вопросов: 12
Ответов: 25
Профиль | | #4
Добавлено: 23.09.04 14:06
Странно, но такие темы обычно разворачиваются в полемику на 2 и более страниц: все говорят вместе, хотя одно и то же ...
Номер ответа: 5
Автор ответа:
crackoff
ICQ: 156165990
Вопросов: 12
Ответов: 229
Профиль | | #5
Добавлено: 23.09.04 14:12
Я пользуюсь только forum by email. Сообщения на сайт приходят не сразу, это я заметил. Видимо, к тому моменту, как мое сообщение дошло до форума, Keen уже успел ответить
Номер ответа: 6
Автор ответа:
RomaVis
ICQ: 266287351
Вопросов: 31
Ответов: 147
Профиль | | #6
Добавлено: 23.09.04 14:17
А чё такое CompareMethod ?????????
Номер ответа: 7
Автор ответа:
crackoff
ICQ: 156165990
Вопросов: 12
Ответов: 229
Профиль | | #7
Добавлено: 23.09.04 14:23
Метод сравнивания строк.
Подробнее - здесь
http://helpsite.narod.ru/vba/instvba/42.htm
Номер ответа: 8
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #8
Добавлено: 23.09.04 14:37
Ну а если нет такого символа/строки, то выдаст -1
Номер ответа: 9
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #9
Добавлено: 23.09.04 15:05
[флуд]
или &HFFFF точнее &HFFFFFFFF
[/флуд]
Номер ответа: 10
Автор ответа:
crackoff
ICQ: 156165990
Вопросов: 12
Ответов: 229
Профиль | | #10
Добавлено: 23.09.04 15:08
[флуд]
или &HFFFF точнее &HFFFFFFFF
[/флуд]
Все таки -1. Long - это знаковый тип.
Номер ответа: 11
Автор ответа:
crackoff
ICQ: 156165990
Вопросов: 12
Ответов: 229
Профиль | | #11
Добавлено: 23.09.04 15:11
Дополню. Если ты про его представление, то в памяти оно выглядит так:
11111111 11111111 11111111 11111111
Номер ответа: 12
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #12
Добавлено: 23.09.04 15:24
В VB всё равно нет беззнаковых типов. Байт не в счёт. А процессору абсолютно по барабану в каком виде это записано в IDE. В машинных кодах всё равно всё сравняется.
Номер ответа: 13
Автор ответа:
crackoff
ICQ: 156165990
Вопросов: 12
Ответов: 229
Профиль | | #13
Добавлено: 23.09.04 15:31
Следуя этой логики и учитывая то обстоятельство, что в VB нет беззнаковых типов (а байт почемуто не в счет) можно было взять любое отрицательное число как код возврата, если функцией ничего не найдено. Почему же взяли именно -1? ИМХО запомнить проще да писать его в IDE удобнее, чем, скажем, даже -2. Поэтому все-таки -1.
Номер ответа: 14
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #14
Добавлено: 23.09.04 17:08
Да что вы привезались к -1?
Просто он выдаст это и все.
Номер ответа: 15
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #15
Добавлено: 23.09.04 17:10
Если не знаешь почему, то я тебя объясню. Функция возвращает результат в регистр EAX. А он как известно 32-битный или 4 байта. Если бы функция возвращала в AH или в AL тогда байт можно было бы учитывать.
Это смотря что ты имеешь ввиду. Например в API значение для TRUE - единица (Private Const TRUE = 1). И кто вообще "взял именно -1" непонятно. И странное у тебя следствие "из этой логики". Ты сделал неверный вывод из моих слов. Ты используешь -1, а sne &HFFFFFFFF. Это совершенно одно и тоже. А вот то что ты предлагал в двоичном виде в IDE никак не записать. VB6 не поддерживает двоичную систему счисления.