Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Power Basic

Страница: 1 |

 

  Вопрос: Поиск в ПБ Добавлено: 30.11.03 18:03  

Автор вопроса:  brevno | Web-сайт: smsquest.by.ru

Люди, небольшой трабл.. Какой в PowerBasic 7.02 аналог ВБшного instr(1,str1,str2,vbTextCompare), камень преткновения -vbTextCompare, то есть мне не нужна case-sentensivity... Просто обычный поиск подстроки в строке, но без внимания к регистру всех букв... Короче INSTR(str$, str2$) без регистра.. Не делать же так - INSTR(UCASE(str$), UCASE(str2$))? Хелп!

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #1
Добавлено: 04.12.03 02:07

Да... эта функция сравнивает только РЕАЛЬНО одинаковые значения.... но зачем тебе оно ..используй АПИ

ПримеР

DECLARE FUNCTION CompareString LIB _

"KERNEL32.DLL" ALIAS "CompareStringA" _

( _

BYVAL Locale AS LONG, _

BYVAL dwCmpFlags AS DWORD, _

lpString1 AS ASCIIZ, _

BYVAL cchCount1 AS LONG, _

lpString2 AS ASCIIZ, _

BYVAL cchCount2 AS LONG _

) AS LONG

Вот если ты ненайдёшь какие канстанты нужны то вот ....

Это тебе для первого значения...

%LOCALE_USER_DEFAULT = &H0000

%LOCALE_SYSTEM_DEFAULT = &H0800&

Это тебе для флагов

%NORM_IGNORECASE = &H00000001

%NORM_IGNORENONSPACE = &H00000002

%NORM_IGNORESYMBOLS = &H00000004

%NORM_IGNOREKANATYPE = &H00010000

%NORM_IGNOREWIDTH = &H00020000

.... в твоём случаи тебе надо первый использовать....

далее если всё удачно то функция возвратит следующие....

%CSTR_LESS_THAN = 1

%CSTR_EQUAL = 2

%CSTR_GREATER_THAN = 3

опять же если строки ровны то она возвратит 2.... "%CSTR_EQUAL"....

ну вот и всё.... так что .... хм.. им необязательно было делать эту функцию... так как

1) Можно сделать её самому...

2) Надо использовать АПИ... тыж програмируешь под виндовс... так вот

разработчики тоже не дураки и заново изобретать велосипед незачем....

П.С. Со аргументами функции я думаю понятно .... если нет ... хм то пиши...

После этого ты можешь подумать "нафига такой изврат , в ВБ всё проще...."

АПИ это тоже не сложно ... вот тебе ещё пример ....

DECLARE FUNCTION lstrcmpi LIB _

"KERNEL32.DLL" ALIAS "lstrcmpiA" _

( _

lpString1 AS ASCIIZ, _

lpString2 AS ASCIIZ _

) AS LONG

Эта функция сравнивает две строки независимо от РЕГИСТРА

возвратит 0 если ..... строки ровны.... отрицательное значение

если вторая строка больше 1... и положительное если наоборот ....

так что выходов у тебя много .... а какой ты выбиришь

уж твоя забота...

Ответить

Номер ответа: 2
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #2
Добавлено: 04.12.03 08:04

блин ну я вообщем ступил +))) всё таки 3 часа ночи сказалисмь ... что то я не в тему..... =(...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам