Работа с большими строками
#1
Отправлено 30 ноября 2006 - 09:26
#2
Отправлено 30 ноября 2006 - 10:45
Придумать алгоритм, вроде следующего:
найти в строке1 позицию вхождения первого символа из строки2.
обрезать ту часть строки1, в которой не было ни одного вхождения первого символа из строки2.
затем вызвать функцию InStr и сравнить обрезанную строку1 и искомую строку2. если результат равен 0, то снова обрезать первый символ строки1 и снова найти в строке1 позицию вхождения первого символа строки2 и т.д. пока InStr не вернет значение 1, что будет означать, что строка2 входит в строку1, или до тех пор пока в строке1 не останется ни одного символа.
#3
Отправлено 30 ноября 2006 - 11:05
#4
Отправлено 30 ноября 2006 - 11:14
но там только одним Variant не обойтись, потому что функция InStr работает со String переменными.. т.е мне кажется, что там все равно надо приделывать алгоритм..
а еще такой вопрос, Вам нужно найти подстроку в тексте обязательно программным способом или нужно найти строку в тексте на странице?
#5
Отправлено 30 ноября 2006 - 12:18
Когда я искал подстроку в строке - робот выдавал ошибку. Когда стал искать подстроку в Variant - все вроде было нормально, робот выдавал позицию. Но, когда я поглядел длину Variant переменной - она была 32К символов... Т.е. как у строки. Т.е. от того что робот перестал вылетать - по большому счету проблема не разрешилась. Имея строку 120К символов в буфере - я не смогу никак определить кол-во вхождений подстроки туда.
Иногда бывает нужно просто найти строку в тексте на странице.
#6
Отправлено 30 ноября 2006 - 13:02
Можно использовать Verification Point на предмет анализа наличия фрагмента текста на странице.Иногда бывает нужно просто найти строку в тексте на странице.
#7
Отправлено 30 ноября 2006 - 13:16
Не люблю пользовать VP в скриптах, т.к. они не переносятся из одного в другой, да и вообще, предпочитаю все проверки делать руками.Можно использовать Verification Point на предмет анализа наличия фрагмента текста на странице.
С проблемой частично разобрался... Функция GetField вроде нормально работает с буфером. И если мы ищем какую-то фразу отделенную от основного текста пробелами - то можно составить массив из слов в буфере и уже искать в нем.
#8
Отправлено 01 марта 2007 - 15:11
Чтобы не поднимать новую тему, продолжу здесь:
Есть набор строк, номер интересующей строки известен и эту строку необходимо записать в переменную, чтобы потом сравнить с другой.
Находим строку по номеру->записываем в переменную->сравниваем StrComp и получаем рез-т. Это если в кратце.
Проблема в том, что не удалось найти в хелпе, как получить строку по номеру, или по её ключевым словам!
Заранее спасибо!
#9
Отправлено 05 марта 2007 - 11:13
Тогда попытался найти строку с помощью VP:
res = GenericObjectVP (CompareText, "Index=0;Type=Control", "VP=SELF.btnShowReport.BackColor;Type=FindSubStr")
но рез-тат получается отрицательный
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных