Доброго времени суток. Собственно имеется проблема с нахождением минимума/максимума в массиве, состоящем из цифр, и пустых ячеек (сам массив хранится в *.ini - файле, в виде строки и разделителем - "|")
Не всегда получаться получить правильные значения. Данная проблема наблюдается только когда имеются 3-х значные и 4-х значные цифры вместе.
Стандартный поиск с помощью _ArrayMin() не подходит, так как имеются пустые ячейки. И почему-то не верно находит максимальное значение. Убирать пробелы пробовал, не особо помогло.
Заранее извиняюсь за возможно не верно оформленное название или темы. Надеюсь на понимание, так как новичек в данном деле.
Не всегда получаться получить правильные значения. Данная проблема наблюдается только когда имеются 3-х значные и 4-х значные цифры вместе.
Код:
#include <Array.au3>
;~ Dim $sellprices = ['','','', 500, 900, 1000, 1500, 1500]
;~ $sellpricesStr = StringStripWS(IniRead(@ScriptDir&"\Data\"&"18933"&".ini","Sellprices","sellprices",''),8)
$sellpricesStr = "|||500|900|1 000|1 100|1 100|1 100|1 500|3 000"
$sellprices = StringSplit($sellpricesStr, "|", 2)
_ArrayDisplay($sellprices)
MsgBox(0,0,"Min: " & _ArrayMin($sellprices) & "Max: " & _ArrayMax($sellprices))
MsgBox(0,0,"Min: " & ArrayMin($sellprices) & "Max: " & ArrayMax($sellprices))
Func ArrayMax($array)
$max = 1
For $i = 0 To UBound($array)-1
If StringIsDigit($array[$i]) Then
If $max < $array[$i] Then
$max = $array[$i]
EndIf
EndIf
Next
Return $max
EndFunc
Func ArrayMin($array)
$min = ArrayMax($array)
For $i = 0 To UBound($array)-1
If StringIsDigit($array[$i]) Then
If $min > $array[$i] Then
$min = $array[$i]
EndIf
EndIf
Next
Return $min
EndFunc
Стандартный поиск с помощью _ArrayMin() не подходит, так как имеются пустые ячейки. И почему-то не верно находит максимальное значение. Убирать пробелы пробовал, не особо помогло.
Заранее извиняюсь за возможно не верно оформленное название или темы. Надеюсь на понимание, так как новичек в данном деле.