Что нового

[Массивы] Узнать наименьшее число в массиве.

Firestarter

Новичок
Сообщения
54
Репутация
0
День добрый. Нужно узнать наименьшее число в массиве.
Массив хранится в файле сл.содержания:
Код:
1-2171-561
1-71-561
1-2171-561
1-171-561

Наваял скрипт:
Код:
$gather_filename = "path.txt"

$hFile = FileOpen($gather_filename, 0)
$sText = FileRead($hFile)
FileClose($hFile)
$sText = StringReplace($sText, '-', @TAB)
$iAr = @extended
If Not $iAr Then Exit
$aRead = StringSplit(StringStripCR($sText), @LF)
Dim $zCoord[$iAr + 1], $xCoord[$iAr + 1], $yCoord[$iAr + 1]

For $i = 1 To $aRead[0]
    If StringInStr($aRead[$i], @TAB) Then
        $aSplit = StringSplit($aRead[$i], @TAB, 2)
        $zCoord[0] += 1
        $zCoord[$zCoord[0]] = $aSplit[0]

        $xCoord[0] += 1
        $xCoord[$xCoord[0]] = $aSplit[1]
		
		$yCoord[0] += 1
        $yCoord[$yCoord[0]] = $aSplit[2]
    EndIf
Next

$xMin = $xCoord[1]
$yMin = $yCoord[1]
For $a = 2 to $xCoord[0]
$x = $xCoord[$a]
$y = $yCoord[$a]

If $x < $xMin Then
$xMin = $x
EndIf
If $y < $yMin Then
$yMin = $y
EndIf

Next
MsgBox (0, "!", "x:" & $xMin & " y:" & $yMin & " " & $a)

Не пойму в чем проблема, скрипт не находит значения из массива, которые меньше 100.
Ума не приложу, почему?
В данной ситуации находит наименьшее значение "Х" -171 а не 71
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Код:
$gather_filename = @DesktopDir & "\path.txt"

$sText = FileRead($gather_filename)
$aRead = StringSplit(StringStripCR($sText), @LF)
Dim $zCoord[$aRead[0] + 1], $xCoord[$aRead[0] + 1], $yCoord[$aRead[0] + 1]

For $i = 1 To $aRead[0]
	If StringInStr($aRead[$i], '-') Then
		$aSplit = StringSplit($aRead[$i], '-', 2)
		
		$zCoord[0] += 1
		$zCoord[$zCoord[0]] = Number($aSplit[0])
		
		$xCoord[0] += 1
		$xCoord[$xCoord[0]] = Number($aSplit[1])
		
		$yCoord[0] += 1
		$yCoord[$yCoord[0]] = Number($aSplit[2])
	EndIf
Next

$xMin = $xCoord[1]
$yMin = $yCoord[1]

For $a = 1 To $xCoord[0]
	If $xCoord[$a] < $xMin Then
		$xMin = $xCoord[$a]
	EndIf
	
	If $yCoord[$a] < $yMin Then
		$yMin = $yCoord[$a]
	EndIf
Next

MsgBox(0, "!", "x:" & $xMin & " y:" & $yMin)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Firestarter [?]

[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Firestarter,
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 
Верх