Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Отловить visible text (http://forum.oszone.net/showthread.php?t=151381)

Frost_Imp 24-09-2009 17:23 1226572

Отловить visible text
 
Всем доброго времени суток!
Прошу помощи в указании направления =)
Есть окно, AutoIT Info определяет в нем visible text. Не могу найти в справке, как с этим visible text работать.
Логику хочу сделать следующую:
Если visible text = "Найденные записи 1/1" то
___1 функция
___в противном случае
___2 функция
конец
А также как будет выглядеть синтаксис, чтобы определить, цифры после текста "Найденные записи" (этим будет заниматься 2 функция). То есть в зависимости от количества записей и номера текущей записи будут выполняться определенные циклы.
Заранее благодарен за ответ!

FlatX007 24-09-2009 18:19 1226609

Нащёт visible text ничё непонял ...

а это -
Цитата:

Цитата Frost_Imp
А также как будет выглядеть синтаксис, чтобы определить, цифры после текста "Найденные записи" (этим будет заниматься 2 функция). То есть в зависимости от количества записей и номера текущей записи будут выполняться определенные циклы. »

Код:

$sString = "Найденные записи 1/3"

$aArray = StringRegExp($sString, "(\d)", 3)
If Not (@error) Then

    Switch
$aArray[0]
        Case 0
            MsgBox(64, "", "0/*")
        Case 1
            MsgBox(64, "", "1/*")
    EndSwitch

    Switch
$aArray[1]
        Case 2
            MsgBox(64, "", "*/2")
        Case 3
            MsgBox(64, "", "*/3")
    EndSwitch

EndIf


Frost_Imp 24-09-2009 18:49 1226627

Достаточно приблизительно понял суть (но понял, что не может не радовать)... Что хочу сказать...
По сабжу - понял, что visible text можно увидеть
WinGetText("title", "")
Но встала другая проблема. Нужно отловить цифры до знака "/" (без кавычек) и после него, то есть
Найденные записи 1/3
записать в переменные 1 и 3
Найденные записи 10/30
записать в переменные 10 и 30
StringMid не прокатывает

FlatX007 24-09-2009 19:25 1226665

Цитата:

Цитата Frost_Imp
Но встала другая проблема. Нужно отловить цифры до знака "/" (без кавычек) и после него, то есть
Найденные записи 1/3
записать в переменные 1 и 3
Найденные записи 10/30
записать в переменные 10 и 30
StringMid не прокатывает »

Я же тебе написал как это сделать ...!

Frost_Imp 24-09-2009 19:31 1226674

Цитата:

Цитата FlatX007
Я же тебе написал как это сделать ...! »

Не =) Подставь вместо 1/3 - 10/30 и поймешь, что не работает. Не писать же в коде все возможные комбинации на совпадение...

FlatX007 24-09-2009 19:48 1226691

В шапке темы ничего не написано что может быть 30 или 130 :tomato2:
Код:

    Switch $aArray[0]
        Case 0
            MsgBox(64, "", "0/*")
        Case 1 to 100
            MsgBox(64, "", "от 1 до 100/*")
    EndSwitch


Frost_Imp 25-09-2009 09:50 1227018

FlatX007, не, не то. Смотрите, объясню подробнее. Предположим, есть строка:
Найденные записи 1/3
Есть две переменные, которым присваиваются значения
SCurrent = 1
SCount = 3
В другой строке
Найденные записи 5/136
у нас будет
SCurrent = 5
SCount = 136
Вот что нужно то в итоге... :-(

Frost_Imp 25-09-2009 12:55 1227159

Работает вот что, найдите 5 отличий =)
Код:

Result_analyse()

func Result_analyse()
    $GetText = WinGetText($title_SGTS, "")
    $n1=StringInStr($GetText,"(")
    $n2=StringInStr($GetText,"/")
    $Current=StringMid($GetText,$n1+1,$n2-$n1-1)
    $n1=StringInStr($GetText,"/")
    $n2=StringInStr($GetText,")")
    $Count=StringMid($GetText,$n1+1,$n2-$n1-1)
    ;MsgBox(0,"",$Current)
    ;MsgBox(0,"",$Count)

EndFunc

$GetText возвращает строку вида "Найденные записи (1/3)"


Время: 23:42.

Время: 23:42.
© OSzone.net 2001-