Что нового

[Массивы] [Массивы] поиск нужного значения в массиве,и переход по ссылки

Floopers

Новичок
Сообщения
24
Репутация
0
Есть массив
Пример:
Код:
Local $aTest[6][3] = [['A', B, C ], _
                                              ['A', 100, 950 ], _
                                              ['A', 300, 800 ], _
                                              ['A', 80, 800 ], _
                                              ['A', 210, 800 ], _
                                             ['A', 10, 750 ]]

A- Тут ссылки
B- Количество
C- цена

Как можно сделать так,что-бы по нахождению нужного значения "C" осуществлялся переход по ссылки "A"..Но по скольку в Значении "C" может появиться от 10 сходств то,нужно сравнить результат по наибольшему количеству "B". И перейти по ссылки "A"

как это вижу я.Но не достаточно навыков для реализации

Код:
Local $aTest[6][3] = [['A', B, C ], _
                                             ['A', 100, 800 ], _
                                             ['A', 80, 800 ], _
                                             ['A', 210, 800 ], _
                                             ['A', 300, 800 ], _
                                             ['A', 250, 800 ]]


Правильный вариант в 5 колонке. 'A',300,800 Значит переходим по той ссылки что в значении "A"
Все ссылки заключены в следующий тэг.Ну и разуметься Id у всех разный )
Код:
<a href=/object.php?id=88>#88</a>
провёл около двух часов по поиску форума.Но не чего подходящего не нашёл..а если что и попадалось..То с таким кодом,который мне не дано ещё понять)) Прошу вашей помощи,в реализации данного замысла!
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Нужно отсортировать массив по второй колонке, в порядке убывания. Затем в цикле смотри содержимое 3 колонки, как только там оказывается нужная "цена" - то делай переход по ссылке.
 
Автор
F

Floopers

Новичок
Сообщения
24
Репутация
0
А можно,примерчик какой? Есть тема про сортировку дат, но с регулярными выражениями. Так и не смог разобраться.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
_ArraySort
и For $i=0 To Ubound($aTest)-1 ... next - все что тебе нужно
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Код:
#include <array.au3>

Dim $Grid[3][3]=[['http://google.ru', 100, 200 ], ['http://yandex.ru', 100, 950 ], ['http://brazzerz.com_', 300, 800 ]]
_ArraySort($Grid,1,0,0,1)

For $i=0 To Ubound($Grid)-1
	if $Grid[$i][2] = 800 Then ; 800 - нужное значение
		ShellExecute($Grid[$i][0])
	EndIf
Next
 
Автор
F

Floopers

Новичок
Сообщения
24
Репутация
0
Код:
For $i = 0 To UBound($aTest) -1
_ArraySort($aTest, 1, 0, 0, 2) 
_ArrayDisplay($aTest, "Массив после сортировки по убыванию в колонке 2" )

А почему,у меня все числа идут в хаотичном порядке?
 
Автор
F

Floopers

Новичок
Сообщения
24
Репутация
0
oesoes Значение столбца задаётся последним параметром верно я понял? Если да.то я перебрал все 3 столбца


Добавлено:
Сообщение автоматически объединено:

Код:
#include <array.au3>
For $i = 0 To UBound($aTest) -1


_ArraySort($aTest,1,0,0,1)

For $i=0 To Ubound($aTest)-1
    if $aTest[$i][2] = 800 Then ; 800 - нужное значение
        ShellExecute($aTtest[$i][0])
    EndIf
Next

Чёт не работает..как включается.Так сразу завершает свою работу


Добавлено:
Сообщение автоматически объединено:



Код:
$oIE = _IECreate('http://www.site.com/statlist.php)
$oTableAll = _IETableGetCollection($oIE)
$iNumTables = @extended
    $oTable = _IETableGetCollection($oIE, 23)
    $aTableData = _IETableWriteToArray($oTable, 23)


;~     ;_ArrayDisplay($aTableData, $i)
;~   _ArrayDisplay($aTableData)

 _ArraySort($aTableData,1,0,0,1)

For $i=0 To Ubound($aTableData)-1
    if $aTableData[$i][2] = 800 Then ; 800 - нужное значение
        ShellExecute($aTableData[$i][0])
    EndIf
Next


Или я что-то упустил? Или не так делаю?
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Нужно очень вдумчиво прочитать код, который вы привели и понять, чего же тут не хватает. Я вам все написал, вы просто значения свои в массив подставьте и размерность измените, а вы начинаете сочинять чепуху вроде той, что вы написали. Во первых: где массив? Во вторых ошиблись с именем переменной массива в цикле, а в третьих: для чего пытались написать ещё один цикл в начале? Странно как-то вы под себя код переделываете... главное выкидываете, а свое добавляете, но не понимаете, для чего.


Добавлено:
Сообщение автоматически объединено:

Попробуйте сначала таблицу в массив прочитать, а потом поедем дальше.
 
Автор
F

Floopers

Новичок
Сообщения
24
Репутация
0
Код:
;~ $oIE = _IECreate('http://www.site.com/statlist.php')
 $oTableAll = _IETableGetCollection($oIE)
 $iNumTables = @extended
     $oTable = _IETableGetCollection($oIE, 23)
     $aTableData = _IETableWriteToArray($oTable, 23)
    ;_ArrayDisplay($aTableData, $i)
;~   _ArrayDisplay($aTableData)
$iEmpty = 0

For $i = 0 To UBound($aTableData) -1
      If $aTableData[$i][0] And $aTableData[$i][1] And $aTableData[$i][2] Then _
 $iEmpty +=1
   EndIf
Next



Добавлено:
Сообщение автоматически объединено:

Окончательно запутался..вернулся к началу.. :stars:
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код:
Local $aTest[11][3] = [['A', 'B', 'C' ], _
					  ['http://one.link', 100, 500 ], ['http://two.link', 80, 800 ], _
					  ['http://three.link', 210, 200 ],  ['http://four.link', 300, 800 ], _
					  ['http://five.link', 321, 800 ], ['http://six.link', 250, 800 ], _
					  ['http://seven.link', 250, 100 ], ['http://eight.link', 299, 800 ], _
					  ['http://nine.link', 101, 1000 ], ['http://ten.link', 233, 800 ]]

Local $iPrice = 800
Local $iMax = 0

For $i = 1 To UBound($aTest)-1
   If $aTest[$i][2] = $iPrice Then
	  If $iMax < $aTest[$i][1] Then
			$iMax = $aTest[$i][1]
			$iLink = $i
	  EndIf
   EndIf
Next

MsgBox(64, StringFormat('Amount: %d -> Price: %d', $aTest[$iLink][1], $aTest[$iLink][2]), $aTest[$iLink][0])
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Floopers
Тогда понятно откуда у тебя такие глупые ошибки. Ты просто не видешь ошибок синтаксиса. Ставь полный редактор SciTe и пиши в нем.
https://www.autoitscript.com/cgi-bin/getfile.pl?../autoit3/scite/download/SciTE4AutoIt3.exe
 
Автор
F

Floopers

Новичок
Сообщения
24
Репутация
0
Код:
MsgBox(64, StringFormat('Amount: %d -> Price: %d', $aTableData[$iLink][1], $aTableData[$iLink][2]), $aTableData[$iLink][0])
MsgBox(64, StringFormat('Amount: %d -> Price: %d', $aTableData[^ ERROR

А по чему ошибку выбивает?


Добавлено:
Сообщение автоматически объединено:

Код:
<tr><td class=wb bgcolor=#fefffe><a href=/stan.php? >[M]</a> <a href=/object.php?id=100>#100</a>, <a href=/object.php?id=100>
В HTML коде..сразу 2 ссылки...Может из-за этого происходить какие-то сбои? или нет?
Код:
MsgBox(64, StringFormat('Amount: %d -> Price: %d', $aTableData[$iLink][0], $aTableData[2]), $aTableData[1])
MsgBox(64, StringFormat('Amount: %d -> Price: %d', $aTableData[^ ERROR
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Автор
F

Floopers

Новичок
Сообщения
24
Репутация
0
Ясьненько..Буду читать как делать проверки


Добавлено:
Сообщение автоматически объединено:

Garrett Да,скопировал с консоли


Добавлено:
Сообщение автоматически объединено:

==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
Код:
MsgBox(64, StringFormat('Amount: %d -> Price: %d', $aTableData[1], $aTableData[2]), $aTableData[$iLink][0])
MsgBox(64, StringFormat('Amount: %d -> Price: %d', ^ ERROR

что-то не так с массивом?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Floopers [?]
Да,скопировал с консоли
Где??? Не вижу!!!
Вы ошибку, ту что английским текстом написана, сюда напишите!
Я могу предположить, что вы просто потеряли переменную $iLink.
: ==> Variable used without being declared.:
MsgBox(64, StringFormat('Amount: %d -> Price: %d', $aTest[$iLink][1], $aTest[$iLink][2]), $aTest[$iLink][0])
MsgBox(64, StringFormat('Amount: %d -> Price: %d', $aTest[^ ERROR


Добавлено:
Сообщение автоматически объединено:

Floopers [?]
Array variable has incorrect number of subscripts or subscript dimension range exceeded
Вам CreatoR уже ответил по этому поводу.



Добавлено:
Сообщение автоматически объединено:

Floopers [?]
что-то не так с массивом?
Конечно! Вы уж определитесь, одномерный или двумерный массив.
 
Автор
F

Floopers

Новичок
Сообщения
24
Репутация
0
двумерный :-[ Извиняюсь перед всеми кто оказывал помощь..косякнул :whistle:


Добавлено:
Сообщение автоматически объединено:

В общем как не крутил.не чего не получается..одни ошибки за ошибками.
 
Верх