Beiträge von Der_Doc
-
-
Hi,
[autoit][/autoit]
ich habe mir mal ein paar Gedanken gemacht, und das ist dabei rausgekommen.
Bestimmt net die beste Lösung aber mal eine.[autoit][/autoit]Spoiler anzeigen
[autoit]#include <Array.au3>
;Dim $string = "((a+b)-(a*(b+a)))+b"
Dim $string = "((1+7)+(2*(2+3-1)))/4"
Dim $string_edit = "("$a = 0
While 1
if StringRegExp($string_edit, '(\()', 0) = 1 then
if ($a = 0) then
$string_edit = _between_bracket($string)
;MsgBox(0,$a,$string_edit)
$a+=1
else
$string_edit = _between_bracket($string_edit)
;MsgBox(0,$a,$string_edit)
$a+=1
EndIf
Else
$string_edit = _calculate_string($string_edit)
MsgBox(0,"Ende",$string_edit)
ExitLoop
EndIf
WendFunc _between_bracket($f_string)
$array = StringRegExp($f_string, '\(([^(]+?)\)', 3)
;_ArrayDisplay($array,"_between_bracket")
$i = 0
While $i <= UBound($array)-1
$f_string = StringReplace($f_string, "("&$array[$i]&")",_calculate_string($array[$i]))
$i+=1
Wend
return $f_string
EndFuncFunc _calculate_string($c_string)
Local $value
Local $splitvalue[1]
Local $ergstring = 0if Number(StringLeft($c_string, 1)) > 0 then $c_string = "+"&$c_string
$splitvalue = StringRegExp($c_string, '([^\d])(\d+)', 3) ;-4+10-1;_ArrayDisplay($splitvalue )
$a=1
$splitvalue[$a] = $splitvalue[0]&$splitvalue[$a]
Do
if (($splitvalue[$a+1] = "+" ) AND ($ergstring = 0))then
$ergstring = $splitvalue[$a]+$splitvalue[$a+2]
$a+=2
ElseIf (($splitvalue[$a+1] = "+" ) AND ($ergstring > 0)) then
$ergstring = $ergstring+$splitvalue[$a+2]
$a+=2
ElseIf (($splitvalue[$a+1] = "-" ) AND ($ergstring = 0))then
$ergstring = $splitvalue[$a]-$splitvalue[$a+2]
$a+=2
elseif (($splitvalue[$a+1] = "-" ) AND ($ergstring > 0)) then
$ergstring = $ergstring-$splitvalue[$a+2]
$a+=2
elseif (($splitvalue[$a+1] = "*" ) AND ($ergstring = 0))then
$ergstring = $splitvalue[$a]*$splitvalue[$a+2]
$a+=2
ElseIf (($splitvalue[$a+1] = "*" ) AND ($ergstring > 0)) then
$ergstring = $ergstring*$splitvalue[$a+2]
$a+=2
ElseIf (($splitvalue[$a+1] = "/" ) AND ($ergstring = 0))then
$ergstring = $splitvalue[$a]/$splitvalue[$a+2]
$a+=2
elseif (($splitvalue[$a+1] = "/" ) AND ($ergstring > 0)) then
$ergstring = $ergstring/$splitvalue[$a+2]
$a+=2
EndIf
Until $a = UBound($splitvalue)-1Return $ergstring
[/autoit]
EndFuncEinfach mal testen und melden was rumgekommen ist.
MfG
Der_Doc -
Hi ich habe mal die große Suchmaschine befragt und habe folgendes gefunden.
http://www.lvbprint.de/html/printmulti.html
und ein HowTo eben falls.Vielleicht ist das ja so was was du suchst.
MfG
Der_Doc -
Hi,
[autoit]
ändere das$Response = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body,"EHLO " & @ComputerName ,-1,1)
[/autoit]
Dann bekommst du ein "Debug" Fenster.Den Inhalt gibst du dann einfach mal hier wieder.
MfG
Der_Doc -
Aha ich werde das in der deutschen Hilfe auch mal ändern.
MfG
Der_Doc -

MfG
Der_Doc -
BugFix danke für die Beispiele und Erklärungen. Ich werde das mal testen ob das für mich gut ist.
Ich arbeite lieber mit Arrays und etwas Zeit.
so verstehe ich meisten auch nach eine Jahr wenigste noch einen Teil des Programms
Aber wie gesagt man muß ja am Ball bleiben.MfG
Der_Doc -
AspirinJunkie Ok ich gebe mich geschlagen.

Zu meiner Ehre hier noch das korregierte Skript aber es beginnt trotzdem bei 1 und ich finde es auch net so übel
Meine Frage zwecks den Objekten war nicht so gemeint ob es schneller oder schöner ist sonder ob es proktikabler ist.
Ich würde das nämich auch gerne öfter nutzen aber vertehe leider den Aufbau net und deswegen tue ich mich damit so schwer.
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]$String = "sfsdgösdglsgdg223fsdfdsöl3fs,dfdsf535dasdasd678dasdsadsad" & @CRLF & "fsdfdsf3sdlk223fsdf223dsfsdf535dasdasdasd"
[/autoit] [autoit][/autoit] [autoit]$aRet = FindDoubleNumbers($String)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aRet)Func FindDoubleNumbers($String)
[/autoit] [autoit][/autoit] [autoit]
Local $aA = StringRegExp($String,"(\d+)",3)
Local $avArray[1]
If @error Or (Not IsArray($aA)) Then Return SetError(1,0,0)
For $i In $aA
if UBound(_ArrayFindAll($aA, $i)) >= 2 then
if _ArraySearch($avArray, $i) = -1 Then _ArrayAdd($avArray,$i)
EndIf
Next
Return $avArrayEndFunc
[/autoit]MfG
Der_Doc -
Naja dann habe ich mich vielleicht falsch ausgedrückt.
Löschen können eh nur PowerUser und ne Meldung mache ich ja nach einer Deaktivierung.MfG
Der_Doc -
Oscar was habe ich denn anders gesagt?

MfG
Der_Doc -
Ist es besser mit Objekten zu arbeiten?
Ich komme damit nämlich net so richtig damit klar.
Meine Version
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]$String = "sfsdgösdglsgdg223fsdfdsöl3fs,dfdsf535dasdasd678dasdsadsad" & @CRLF & "fsdfdsf3sdlk223fsdfdsfsdf535dasdasdasd"
[/autoit] [autoit][/autoit] [autoit]$aRet = FindDoubleNumbers($String)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aRet)Func FindDoubleNumbers($String)
[/autoit] [autoit][/autoit] [autoit]
Local $aA = StringRegExp($String,"(\d+)",3)
Local $avArray[1]
If @error Or (Not IsArray($aA)) Then Return SetError(1,0,0)
For $i In $aA
if _ArraySearch($avArray, $i) = -1 Then _ArrayAdd($avArray,$i)
Next
Return $avArrayEndFunc
[/autoit]MfG
Der_Doc -
LOL man sollte schon verstehen was man da liest.

MfG
Der_Doc -
Wie ist denn der Aufbau von der Datei?
MfG
Der_Doc -
Sieht irgendwie komisch aus.
Aber wo genau der Fehler nun liegt? Vielleicht solltest du mal die Select Zeile weglassen?MfG
Der_Doc -
Ne ... wenn die Leute meinen Sie sollten Ihre Botanfragen dort posten, können diese gelöscht werden und die User bekommen eine Verwahnung.
MfG
Der_Doc -
Hi ist das Tool dsmod.exe direkt in Windows eingebunden?
Ich glaube nicht. @comspec /c ist nur dafür um einen Befehl wie z.B. dir oder cmd zu benutzen.Du solltest auch den kompletten Pfad zu der Datei dsmod.exe angeben.
Außerdem solltest du schauen ob die Datei auch eine 64Bit Version ist oder ob es diese als 64Bit gibt.MfG
Der_Doc -
Also so wie du es beschrieben hast, funktioniert es mit diesem Skript auf jeden Fall.
Spoiler anzeigen
Dim $minute = @min While 1 if $minute == @min-2 then Exit Else sleep (5000) send ("{ALT}") sleep (1000) send ("{ENTER}") sleep (1000) send ("{DOWN}") sleep (1000) send ("{ENTER}") sleep (1000) send ("XXX") sleep (1000) send ("{ENTER}") Endif WEnd
Es werden solange die Sendbefehle hintereinander abgesendet, bis der Zeitunterschied 2 Minuten beträgt.
MfG
Der_Doc -
Also du solltest dir unbedingt mal den Umgang mit Schleifen in der Hilfe anschauen.
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
Dim $minute = @minWhile 1
[/autoit] [autoit][/autoit] [autoit]if $minute == @min-2 then
[/autoit] [autoit][/autoit] [autoit]
ExitElse
[/autoit] [autoit][/autoit] [autoit]
sleep (5000)
send ("{ALT}")
sleep (1000)
send ("{ENTER}")
sleep (1000)
send ("{DOWN}")
sleep (1000)
send ("{ENTER}")
sleep (1000)
send ("XXX")
sleep (1000)
send ("{ENTER}")Endif
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit]Ist aber net getestet.
MfG
Der_Doc -
Oder du schaust dir einfach mal diese Programm an
Spoiler anzeigen
Das soll angeblich das Format unterstützen.
MfG
Der_Doc -
Versuche es mal nicht unbedingt unter dem Desktop.
Benutze mal D: da kannst du auch ganz bestimmt schreiben.Wenn ich das richtig sehe ist hinter
Spoiler anzeigen
C:\Users\XXX>Desktop\Aut2exe_x64.exe
deinem XXX ein > das sollte wenn schon ein \ sein.Und der Pfad zu der EXE ist auch der Desktop? Bei mir ist das C:\Programme\Autoit\.......
MfG
Der_Doc