[autoit]
for $i = 0 to ubound($array) -1
consolewrite($i & " " & $array[$i] & @crlf)
next
for $i = 0 to ubound($array) -1
consolewrite($i & " " & $array[$i] & @crlf)
next
Wozu brauchste das denn in der Form? Zum debuggen?
Da hilft dir vielleicht Consolewrite
In einer Messageloopfunktion per Guiregistermsg sollte das Skript nicht "angehalten" werden (_Arraydisplay).
Auch eine msgbox führt da regelmäßig zum crash!
$file=FileRead("pclist.txt")
$name="HOST13361"
$Ipa=StringRegExp($file,"(\d+.\d+.\d+.\d+) "&$name&" .+:.+:.+:.+:.+:.+ \d+.\d+.\d+ \d+:\d+:\d+",3)
$maca=StringRegExp($file,"\d+.\d+.\d+.\d+ "&$name&" (.+:.+:.+:.+:.+:.+) \d+.\d+.\d+ \d+:\d+:\d+",3)
If Not @error Then
$ip=$ipa[0]
$mac=$maca[0]
Else
MsgBox(0, "Fehler", @error)
EndIf
Vermutlich einfach der Errorcode für "no match"?
Demnach stimmt das Pattern nicht und müsste angepasst werden.
Fehler 1 liegt an deiner Autoitversion
Fehler 2 ist der typische Arrayfehler, d.h. kein Treffer (-> kein Array) und da keine @error Abfrage da ist bevor aufs Array zugegriffen wird, kommt eben die Meldung.
Wo ist denn der Ansatz? Gar keine Idee?
1. Die .txt in ein 2D Array lesen (gibts ne UDF von Bugfix)
2. Durchs Array loopen und nach dem gesuchten Host suchen
;pseudocode
if StringinStr($array[$i][1], $ssearch) then
$ret = $array[$i][0] & $array[$i][1] & $array[$i][2] ;usw.
return $ret
Welchen Vorteil erhofft ihr euch von einer ini mit einer Section? Zumal man sowieso beim Startup alles auf einen Rutsch einlesen sollte.
Imho macht das keinen Sinn. ![]()
Eine .txt Datei erfüllt die Aufgabe genauso gut und man hat die 32 bzw. 64 kb Beschränkung nicht.
Gleichsetzen und aus dem Ergebnis kann man dann sehen ob es überhaupt einen Schnittpunkt gibt.
In dem Fall setzt man den ausgerechneten Wert des Skalar (r, s) in die jeweilige Geradengleichung ein und erhält den Schnittpunkt.
anno2008 kann das sicherlich auch in Autoit ![]()
Das wird von der Größe her bei mehreren Sprachen und vielen Einträgen ganz schnell sehr eng.
Würde ich nicht empfehlen, auch weil jeder in der Hauptini rummurksen muss um eine Sprache selbst hinzuzufügen.
Also - gegeben sei Punkt X und die Gerade g
Um den am nähsten liegenden Punkt auf der Gerade g zu finden muss der Bewegungsvektor von Punkt X zum gesuchten Punkt Y orthogonal zur Geraden g sein.
Algebraisch könnte ichs wieder vorrechnen ...
Ah hast recht da war ein Denkfehler drin. ![]()
Hö? meins stimmt so würd ich sagen. ![]()
Ist richtig - Thema verfehlt ![]()
Habs oben geändert.
$s1="C0047D333.test.com"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]ConsoleWrite(_unkreativ($s1, "C") & @CRLF)
ConsoleWrite(_unkreativ2($s1, ".") & @CRLF)
Func _unkreativ($sstring, $ssearch)
If StringLeft($sstring, 1) = $ssearch then
return true
else
Return false
endif
endfunc
func _unkreativ2($sstring, $ssearch)
return StringTrimRight($sstring, StringInStr($sstring, $ssearch))
endfunc
edit \ So stimmts nu aber ![]()
Die Sprachdateien sollte man schon auslagern (.ini, .txt, sqlite oder so.).
Alle Sprachdateien dauerhaft im Speicher zu parken ist unsinnig und schlecht erweiterbar.
Einfaches Konzept:
-> \Sprache Ordner im Skriptverzeichnis
-> dort wird jede Sprache als .txt abgelegt
-> in der Konfig. ini steht welche beim Startup geladen werden soll
-> beim Startup wird die .txt eingelesen und die Variablen bekommen ihren Wert zugewiesen.
Wenn du jetzt eine rechtliche Analyse auf einem umstrittenen Gebiet erwartest muss ich dich leider enttäuschen.
Lohnt sich eigentlich kaum, so ein Impresum ist ja schnell erstellt!
Kannst es natürlich auch "riskieren" - wollts nur gesagt haben. ![]()
Zusatz:
Bevor du jetzt verschiedene Rechtsabhandlungen liest ob überhaupt eine Impressumpflicht besteht (würde ich hier eher bejahen) ist schneller ein Impressum erstellt.
Mir ist gerade eine Idee gekommen.
Ich hab nicht Nachgerechnet, aber nuts, du hast als Richtungsvektor für die Gerade (1|0|0) benutzt.
Dieser Richtungsvektor ist parallel zur Ebene und somit haben die gar keinen Schnittpunkt!!!Also, es ist nicht zwangsläufig mein Fehler :).
Na wenn die Gerade parallel zur Ebene liegt darf zumindest nicht "True" rauskommen.
Diesen Spezialfall sollte man möglichst früh eleminieren.
Ähm doch na klar
Dazu muss die Abschlussprüfung geändert werden
0<=r<=1
usw.
sollte sich ergoogeln lassen ![]()
Ist wirklich schwer zu verstehn ... ![]()
global $atest[2]
$atest[0] ="Hallo"
$atest[1] ="Sonnenschein"
_search($atest, "Sonnenschein")
[/autoit] [autoit][/autoit] [autoit]Func _Search(ByRef $array, $ssearch)
; $array = Array das druchsucht werden soll
; $ssearch = String nachdem das Array durchsucht werden soll
local $count=UBound($array)
for $i = 0 to $count -1
if $array[$i] = $ssearch then MsgBox(0, "", "Arrayindex " & $i & @CRLF & "Suchestring " & $ssearch)
Next
endfunc
black_skorpi: Dein erstes Beispiel hat nen Fehler. ![]()