Hey, postet doch mal die txt mit oder so. Und dein Script.
Beiträge von blubbstar
-
-
Ja auch negative werden berücksichtig.
Edit: Das hatte nen Fehler, jetzt stimmts.
Spoiler anzeigen
[autoit]Global $Array[4] = ["f 1222", "f 4566", "cd -522", "ab 10001"]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Number = _GetNearestNumber($Array, 10000)
MsgBox(0, "", $Number)Func _GetNearestNumber($sNumbersArray, $sNumber)
[/autoit]
Local $sArrayMinDiff = '', $sArrayCorrect
For $i = 0 To UBound($sNumbersArray) - 1
$sFormatedNumber = Number(StringRegExpReplace($sNumbersArray[$i], "[^-\d+]", '$1'))
MsgBox(0, "", $sFormatedNumber)
If StringLen($sFormatedNumber) < 3 Or StringLen($sFormatedNumber) > 4 Then ContinueLoop
$sNumberDiff = StringReplace($sFormatedNumber - Number($sNumber), "-", "")
If (Number($sNumberDiff) < Number($sArrayMinDiff)) Or $sArrayMinDiff = '' Then
$sArrayMinDiff = $sNumberDiff
$sArrayCorrect = $i
EndIf
Next
Return StringRegExpReplace($sNumbersArray[$sArrayCorrect], "[^-\d+]", '$1')
EndFunc ;==>_GetNearestNumber -
Kein Ding
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global $Array[3] = ["a763bb", "f w1001 abcdf r!=", "522ewte"]
$Number = _GetNearestNumber($Array, 1000)
MsgBox(0, "", $Number)Func _GetNearestNumber($sNumbersArray, $sNumber)
[/autoit]
Local $sArrayMinDiff = '', $sArrayCorrect
For $i = 0 To UBound($sNumbersArray) - 1
$sNumberDiff = StringReplace(Number(StringRegExpReplace($sNumbersArray[$i], "[^\d+]", '$1')) - Number($sNumber), "-", "")
If (Number($sNumberDiff) < Number($sArrayMinDiff)) Or $sArrayMinDiff = '' Then
$sArrayMinDiff = $sNumberDiff
$sArrayCorrect = $i
EndIf
Next
Return StringRegExpReplace($sNumbersArray[$sArrayCorrect], "[^\d+]", '$1')
EndFunc ;==>_GetNearestNumber -
Irgendwie so
Spoiler anzeigen
[autoit]Global $Array[6] = [2100, 2234, 2310, 2998, 3001, 527]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Number = _GetNearestNumber($Array, 3000)
MsgBox(0, "", $Number)Func _GetNearestNumber($sNumbersArray, $sNumber)
[/autoit]
Local $sArrayMinDiff = '', $sArrayCorrect
For $i = 0 To UBound($sNumbersArray) - 1
$sNumberDiff = StringReplace(Number($sNumbersArray[$i]) - Number($sNumber), "-", "")
If (Number($sNumberDiff) < Number($sArrayMinDiff)) Or $sArrayMinDiff = '' Then
$sArrayMinDiff = $sNumberDiff
$sArrayCorrect = $i
EndIf
Next
Return $sNumbersArray[$sArrayCorrect]
EndFunc ;==>_GetNearestNumber -
-
-
-
-
-
50*100+50=5050 :)?
-
Also die wohl beste Möglichkeit sehe ich darin, immer 100 zu bilden. Also 0 un 100, 1 und 99, 2 und 98, etc. So hätte man bei 49 und 51 bereits 5000, und am Ende bleibt die 50 alleine über. Also 5050. Meine Theorie. Also im Kopf np.
-
Hey,
schtasks per cmd kann das. Die Parameter kann ich dir aber nicht alle erklären, ist ziemlich vielseitig und man kann viel umstellen
Einfach mal in cmd 'schtasks /create /?' eingeben. -
-
Du drückst aber schon den Hotkey, oder?
-
Zeile 101
[autoit]If GuiCtrlread($settings4) <> "" ...
[/autoit] -
Hey pretrojaner,
sorry, mein erster Ansatz war nicht gut, das funktionierte garnicht. Habs bissal umgeschrieben:Spoiler anzeigen
[autoit]#include <array.au3>
[/autoit]
Dim $aArray[3] = [2, '<id serialno="A5BS11982" friendly="Alice5-A5BS11982" os="linux" soft="1.3.5" hostname="Alice5-A5BS11982" /><ip_list><ip_device name="eth0" ip="192.168.10.11" mask="255.255.255.0" up="1" macid="00:04:5F:86:7E:63" gateway="" /><ip_device name="eth1" ip="" mask="" up="0" macid="00:04:5F:86:7E:64" gateway="" /><ip_device name="irda0" ip="" mask="" up="1" macid="34:20:a3:6f " gateway="" /><ip_device name="ppp0" ip="" mask="" up="0" macid="" gateway="" /></ip_list>', '<id serialno="102" friendly="SleepwareHost" os="win32" soft="2.7.65" hostname="Alice1" />']
Dim $nArray[UBound($aArray)], $sOld = 0
For $i = 1 To UBound($aArray) - 1
$sRegExpArray = StringRegExp($aArray[$i], '"(.*?)"', 3)
If UBound($sRegExpArray) > $sOld Then ReDim $nArray[UBound($aArray)][UBound($sRegExpArray)]
$nArray[$i][0] = UBound($sRegExpArray) - 1
For $j = 1 To $nArray[$i][0]
$nArray[$i][$j] = $sRegExpArray[$j]
Next
$sOld = UBound($sRegExpArray)
Next
_ArrayDisplay($nArray)
MsgBox(0, "", $nArray[1][1])ZitatSorry, aber ich blicke nicht mehr durch....
Was heißt denn statisch bzw dynamisch?
Ist mittels einer for/to-Schleife ein Array auslesen "dynamisch"?
Dynamisch heißt, es soll auch funktionieren wenn ein Array mehr oder weniger Einträge hat. Das Script soll also nicht von einer festen Anzahl abhängig sein. -
Was genau ist denn jetzt eigentlich dein Ziel Ich steh gerade ein bischen aufm Schlauch.
-
Spoiler anzeigen
[autoit]#include <array.au3>
[/autoit] [autoit][/autoit] [autoit]
Dim $aArray[3] = [2, '<id serialno="A5BS11982" friendly="Alice5-A5BS11982" os="linux" soft="1.3.5" hostname="Alice5-A5BS11982" /><ip_list><ip_device name="eth0" ip="192.168.10.11" mask="255.255.255.0" up="1" macid="00:04:5F:86:7E:63" gateway="" /><ip_device name="eth1" ip="" mask="" up="0" macid="00:04:5F:86:7E:64" gateway="" /><ip_device name="irda0" ip="" mask="" up="1" macid="34:20:a3:6f " gateway="" /><ip_device name="ppp0" ip="" mask="" up="0" macid="" gateway="" /></ip_list>', '<id serialno="102" friendly="SleepwareHost" os="win32" soft="2.7.65" hostname="Alice1" />']
Dim $nArray[UBound($aArray)]
$nArray[0] = UBound($aArray) - 1For $i = 1 To $nArray[0]
[/autoit] [autoit][/autoit] [autoit]
$nArray[$i] = StringRegExp($aArray[$i], '"(.*?)"', 3)
NextFor $i = 1 To $nArray[0]
[/autoit]
_ArrayDisplay($nArray[$i])
Next -
Hier noch ne schnellere Variante:
Spoiler anzeigen
[autoit]#include <array.au3>
[/autoit] [autoit][/autoit] [autoit]
Dim $aArray[3] = [2, '<id serialno="A5BS11982" friendly="Alice5-A5BS11982" os="linux" soft="1.3.5" hostname="Alice5-A5BS11982" /><ip_list><ip_device name="eth0" ip="192.168.10.11" mask="255.255.255.0" up="1" macid="00:04:5F:86:7E:63" gateway="" /><ip_device name="eth1" ip="" mask="" up="0" macid="00:04:5F:86:7E:64" gateway="" /><ip_device name="irda0" ip="" mask="" up="1" macid="34:20:a3:6f " gateway="" /><ip_device name="ppp0" ip="" mask="" up="0" macid="" gateway="" /></ip_list>', '<id serialno="102" friendly="SleepwareHost" os="win32" soft="2.7.65" hostname="Alice1" />']For $i = 1 To UBound($aArray)-1
[/autoit]
$test=StringRegExp($aArray[$i], '"(.*?)"', 3)
_ArrayDisplay($test)
Next -
Hallo,
das passiert nur wenn du $a = 0x11223344 benutzen anstatt $a = "0x11223344".
Glaube ich zumindestKannst es aber auch so vermeiden:
[autoit]$a = StringFormat("0x%x", 0x11223344)
[/autoit]
MsgBox(0, "", $a)