Es war nur so eine Frage die ich mir stellte. Weil wenn man sich das Fensterchen ersetzen mit Strg + h zB mal auf macht dann sind da jede menge Schalter die man betätigen kann. Und hab ich so ein wenig gelesen um herauszufinden wie das funktioniert. So wie zB das Thema Wildcard. Aber ich bin in diesem zusammenhang nicht schlau draus geworden. Ich dachte es geben eine von mir nicht zu entdeckende Beschreibung die mir jemand zeigen können. Aber is auch net so schlimm.
Beiträge von JanausSm
-
-
Hallo ich habe jetzt ein wenig gesucht aber ich scheine wohl nicht die richtige suchanfrage im Internet hin zu bekommen.
Ich wollte eigendlich nur herausfinden wie zB. bei diesem Text hierSpoiler anzeigen
$Var1 = 1
$Var2 = 2
$Var3 = 3in allen Zeilen das was hinter $Var1, $Var2 und $Var3 steht wegbekommt.
Gibt es da Platzhalter oder sowas ähnliches?Gruß Jan
-
Oh danke Oscar...
Naja das hätte ich jetzt bestimmt erst viel später erkannt.
Weil ich gar net weis wo ich nachsehen muss wegen der Neuerungen.Da wird sich bestimmt einiges wieder geändert haben ...
Ich versuche mich mal im Finden dieser Hisroy von der Du hier geschrieben hast.
Wenn ich nicht klar komm muss ich halt die alte Autoitversion weiter nehmen bis ich
die ganzen Änderungen bemerkt und verstanden habe.Danke nochmal Oskar
Gruß Jan
-
Hallo,
ich habe auf einen neu gekauften Rechner das Autoit installiert und hab dabei festgestellt
das jetzt bestimmte Makros nicht erkannt werden. Wie zB @InetGetBytesRead.
Aber wenn ich in so einer au3 datei anfange mit dem zeichen @ geht dann ja immer
so eine kleine Combo auf und da drinnen steht es aber ???!!!Hier mal ein Auzug aus einen Script bei dem mir das aufgefallen ist.
[autoit]
Also es steht zwar da aber nich in derr gwohnten roten farblichen Markierung.While 1
[/autoit]
ProgressSet($Groesse, "schon heruntergeladene Dateiteile: " & @InetGetBytesRead / 1024 & " MB")
If @InetGetBytesRead / 1024 == $DateiGroesseStepWert_MB Then ExitLoop
ConsoleWrite(@InetGetBytesRead / 1024 & " MB " & @CRLF)
Sleep(200)
If @InetGetBytesRead / 1024 >= $DateiGroesseStepWert_MB_10_Prozent Then
$DateiGroesseStepWert_MB_10_Prozent = $DateiGroesseStepWert_MB_10_Prozent + $DateiGroesseWert_MB_10_Prozent
$Groesse = $Groesse + 10
EndIf
WEnd[Blockierte Grafik: http://www.trattoria-teggiano.de/Bild1.jpg]
Aber komischer weise kann man es trotzdem auswählen ...
[Blockierte Grafik: http://www.trattoria-teggiano.de/Bild2.jpg]
Ich hoffe ich konnte das so einigermassen gut darstellen.
Kann ich da nur neu installieren oder gibts da ne Möglichkeit
an der bestehenden Autoitinstallation was zu werkeln?Gruß Jan
-
Hallo...
Hat schon jemand mal versucht ein Checkbox in der Fritzbox mit _IEFormElementCheckBoxSelect() zu steuern ???
Ich mein da gibts ja nich wirklich ein Form wenn ich das richtig sehe.
Kann man da überhaupt die Checkbox auswählen bzw den Staus der Checkbox ermitteln ???
Wie hier in meinen Beispiel in dem ich mich momentan um her hangleBei dem Beispiel geht es um die Checkbox ganz unten für den T38 Modus.
Hier wüsst ich gern wie der Status der Checkbox ist bevor etwas geschieht.
Und wenn der Status auf ausgewählt steht soll abgewählt werden.
Im normalen Form is das ja auch nicht so schlimm aber hier ... :wacko:Ich wäre sehr froh über einen zwei oder auch hundert Tipps
Gruß Jan
Spoiler anzeigen
[autoit]#include <IE.au3>
[/autoit] [autoit][/autoit] [autoit]$ADDSIP= "http://fritz.box/cgi-bin/webcm?sid=b732d03b06daa7e7&getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&var%3Apagename=sipoptionen&var%3Aerrorpagename=sipoptionen&var%3Amenu=fon&var%3Apagemaster=&time%3Asettings%2Ftime=1274104602%2C-120&emailnotify%3Asettings%2Fshow_voipstat=1"
[/autoit] [autoit][/autoit] [autoit]Global $oIE = _IECreate ($ADDSIP, 0, 1, 1, 0)
[/autoit] [autoit][/autoit] [autoit]$inputOKNZ="69"
[/autoit] [autoit][/autoit] [autoit]
$SleepTime=800send("{TAB 30}") ; ONKZ
[/autoit] [autoit][/autoit] [autoit]Sleep($SleepTime)
[/autoit] [autoit][/autoit] [autoit]send($inputOKNZ)
[/autoit] [autoit][/autoit] [autoit]Sleep($SleepTime)
[/autoit] [autoit][/autoit] [autoit]send("{TAB 2}") ; Beste Telefonqualität
[/autoit] [autoit][/autoit] [autoit]Sleep($SleepTime)
[/autoit] [autoit][/autoit] [autoit]send("{DOWN}") ; Beste Telefonqualität
[/autoit] [autoit][/autoit] [autoit]Sleep($SleepTime)
[/autoit] [autoit][/autoit] [autoit]send("{TAB}") ; Traffic Sharpping
[/autoit] [autoit][/autoit] [autoit]Sleep($SleepTime)
[/autoit] [autoit][/autoit] [autoit]send("46") ; Traffic
[/autoit] [autoit][/autoit] [autoit]Sleep($SleepTime)
[/autoit] [autoit][/autoit] [autoit]send("{TAB}") ; Traffic
[/autoit] [autoit][/autoit] [autoit]Sleep($SleepTime)
[/autoit] [autoit][/autoit] [autoit]send("46") ; Traffic
[/autoit] [autoit][/autoit] [autoit]Sleep($SleepTime)
[/autoit] [autoit][/autoit] [autoit]send("{TAB 7}") ; Faxmodus aus
[/autoit] [autoit][/autoit] [autoit]Sleep($SleepTime)
[/autoit] [autoit][/autoit] [autoit]send("{SPACE}"); Haken Fax Raus
[/autoit] [autoit][/autoit] [autoit]Sleep($SleepTime)
[/autoit] [autoit][/autoit] [autoit]send("{TAB}") ; zu OK
[/autoit] [autoit][/autoit] [autoit]Sleep($SleepTime)
[/autoit] [autoit][/autoit] [autoit]send("{SPACE}") ; zu OK
[/autoit] -
Ja kann ich... wenn auch ein wenig späte
zB: dieses hier. Hier werden in dem zuvor installierten OpenOffice Org noch Einstellungen vorgenommen.
Und diese mache ich zZ per Send() weil ich es anders nicht hinbekomme.
Jetzt würde mich aber schon interessieren ob das auch anders machbar wäre.
Also zB ein Klick auf die Links bzw Combofelder.Gruß Jan
Spoiler anzeigen
[autoit]; Einstellungen im Open Office Org damit man die daten im Microsoft Office öffnen kann.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$Time=600
[/autoit] [autoit][/autoit] [autoit]
$SoftName= @ProgramFilesDir & "\OpenOffice.org 3\program\swriter.exe"ShellExecute($SoftName)
[/autoit] [autoit][/autoit] [autoit]
If @error Then Exit(1)
ConsoleWrite("ShellExecute" & @CRLF)$Schleife = 0
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
While 1
Local $WinWait=WinWait("Unbenannt 1 - OpenOffice.org Writer", "", 5)
If $WinWait == 0 Then
$Schleife = $Schleife +1
ElseIf $WinWait == 1 Then
ExitLoop
EndIf
If $Schleife == 5 Then Exit(1)
WEndSend("{ALT}+x")
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Send X" & @CRLF)
Sleep($Time)Send("o")
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Send O" & @CRLF)
Sleep($Time)Send("{PGUP 2}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{LEFT 2}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{DOWN}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{LEFT 2}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{RIGHT}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{DOWN}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)send("!D")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{PGUP 2}") ; Bildauftaste 2 mal
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("t")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{TAB}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{PGUP 5}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{PGDN 4}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time);Send("{TAB 17}")
[/autoit] [autoit][/autoit] [autoit]
send("!D")
Sleep($Time)Send("{DOWN 3}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{TAB}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{PGUP 5}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{PGDN 8}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)send("!D")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{DOWN}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{TAB}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{PGUP 5}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{TAB}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("{ENTER}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Send("!+{F4}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($Time)Exit
[/autoit] -
Hallo ,
Ich versuche mich schon wieder mal eine ganze Zeit lang damit herauszufinden wie man Daten die man mit Hilfe von Au3Info nicht erreichen kann auf eine andere Art und Weise greifbar zu machen.
In der Hilfe von Autoit finden man zum Thema innertext nur Beispiele für den IE. Dort hab ich dann ein wenig gestöbert und bin dann auf das hier gestossen:Spoiler anzeigen
[autoit]$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$oHTTP.Open("GET","http://www.AutoIt.de")
$oHTTP.Send()
$HTMLSource = $oHTTP.Responsetextmsgbox(0,"" , $HTMLSource)
[/autoit] [autoit][/autoit] [autoit][/autoit]Das wäre ja genau das was ich bräuchte um in manchen Programmen Werte zu erfassen.
Zb. wenn man eine Softwareinstallation automatisiert, kommt es vor das man bestimmte Fenster
nicht erreichen kann.
Kann mir da jemand vieleicht mit einen kleinen Beispiel oder Tip auf die Sprünge helfen.
Das wäre nett.Grus Jan
-
Ja die Adresse ändert sich. Jetzt hab ich aber noch von einem bekannten einen Tip bekommen.
Und zwar die Funktion _IEHeadInsertEventScript ( ByRef $o_object, $s_htmlFor, $s_event, $s_script ) .
Damit werde ich jatzt mal ein wenig rumprobieren. -
Hallo und guten Abend zusammen,
wieder mal habe ich ein Problem was ich nicht aufgelöst bekomme.
Ich arbeite schon seid etwas längerer Zeit an einem Programm da unter anderem die Aufgabe hat
Informationen, die man zuvor in eine im Autoit gebauten GUI einträgt, auf einer Internetseite
in die dafür vorgesehenen Inputfelder einträgt. Das funktioniert auch ganz gut. Eigentlich könnte ich
den prozess auch soweit automatisieren das der Submit Button auch über _IEFormSubmit mit bearbeitet wird.
Da sich aber diese Internetseite sehr oft ändert und ich darauf keinen Einfluss nehmen kann habe ich das
bewusst weg gelassen.
Hier erstmal der Code mit dem ich die Internetseite ,je nach dem was für eine Seite gerade geladen wurde,
durch mein Script mit den Informationen befülle.Spoiler anzeigen
[autoit]Local $Page_1, $html_1
[/autoit] [autoit][/autoit] [autoit]
Local $teil_1 =0
Local $teil_2 =0
Local $SQL_Wert_Checkbox=_SQL_Anfrage_Auftrag("Select m.WEBTOOLINFO From monteur m Where m.Monteur = '"&$User&"' ")
If $SQL_Wert_Checkbox = 0 Then
_IE_GUI_INFO()
EndIf
Local $Wartezeit = 1000
; fragt die Internetadresse aus der Datenbank ab die aufgerufen werden soll
$Unity_IE_Add=_SQL_Anfrage("SELECT UNITY_IE_ADD FROM global")
;Local $oIE = _IECreate ($Unity_IE_Add, 0)
Local $oIE = _IECreate ($Unity_IE_Add, 0)
$Wenn_Page_0_ist = 0While 1
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite(" ganz oben in der Whlie" & @CR)
$Page_1=_WebSeite_String_Suche($oIE)
If $raus == 44 Or @error Then ExitLoop
If $Page_1 == 0 And $Wenn_Page_0_ist == 0 Then _IE_GUI_Moment()
ConsoleWrite(" Wert aus $Page_1 = " & $Page_1 & @CR)
; nun wird nach dem Teilstring $sMyString in $sLinkText gesucht
If $Page_1 = 1 Then
; Techniker ID und Auftragsnummer
_IE_GUI_Moment()
ConsoleWrite(" techId" & @CR)
Local $TechnikerID_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $AutragsNr_Form = _IEFormGetObjByName($oIE, "orderDetails")
$TechnikerID_Query = _IEFormElementGetObjByName ($TechnikerID_Form, "techId")
_IEFormElementSetValue ($TechnikerID_Query, $TECH_ID)
$AutragsNr_Query = _IEFormElementGetObjByName ($AutragsNr_Form, "woId")
_IEFormElementSetValue ($AutragsNr_Query, GUICtrlRead($IN_AUFTRAGSNUMMER))
_IE_Warteschleife("techId", $oIE)
If $raus == 44 Or @error Then ExitLoop
[/autoit] [autoit][/autoit] [autoit]
ElseIf $Page_1 = 2 Then
; MAC Adresse
_IE_GUI_Moment()
ConsoleWrite(" macAddress" & @CR)
Local $MAC_Adresse_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $MAC_Adresse_Query = _IEFormElementGetObjByName ($MAC_Adresse_Form, "macAddress")
_IEFormElementSetValue ($MAC_Adresse_Query, GUICtrlRead($In_MACAdresse))
_IE_Warteschleife("macAddress", $oIE)
If $raus == 44 Or @error Then ExitLoop
ElseIf $Page_1 = 3 Then
; WE Lage und WLAN ja / nein
_IE_GUI_Moment()
ConsoleWrite(" wenr" & @CR)
Local $Check_Data_1of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_1of4_WElage_Query = _IEFormElementGetObjByName ($Check_Data_1of4_Form, "wenr")
_IEFormElementSetValue ($Check_Data_1of4_WElage_Query, GUICtrlRead($In_WELage))
if GUICtrlRead($Checkbox_WLAN) == 4 Then
Local $Check_Data_1of4_WLAN_Query = _IEFormElementCheckboxSelect ($Check_Data_1of4_Form, "wlan", "", 0, "byIndex")
Else
Local $Check_Data_1of4_WLAN_Query = _IEFormElementCheckboxSelect ($Check_Data_1of4_Form, "wlan", "", 1, "byIndex")
EndIf
_IE_Warteschleife("WE Lage", $oIE)
If $raus == 44 Or @error Then ExitLoop
ElseIf $Page_1 = 4 Then
; Positionseingabe
_IE_GUI_Moment()
Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_2of4_Positionen_1_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_1")
_IEFormElementSetValue ($Check_Data_2of4_Positionen_1_Query, GUICtrlRead($In_Pos1))
Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_2of4_Positionen_2_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_2")
_IEFormElementSetValue ($Check_Data_2of4_Positionen_2_Query, GUICtrlRead($In_Pos2))
Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_2of4_Positionen_3_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_3")
_IEFormElementSetValue ($Check_Data_2of4_Positionen_3_Query, GUICtrlRead($In_Pos3))
Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_2of4_Positionen_4_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_4")
_IEFormElementSetValue ($Check_Data_2of4_Positionen_4_Query, GUICtrlRead($In_Pos4))
Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_2of4_Positionen_5_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_5")
_IEFormElementSetValue ($Check_Data_2of4_Positionen_5_Query, GUICtrlRead($In_Pos5))
Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_2of4_Positionen_6_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_6")
_IEFormElementSetValue ($Check_Data_2of4_Positionen_6_Query, GUICtrlRead($In_Pos6))
Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_2of4_Positionen_7_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_7")
_IEFormElementSetValue ($Check_Data_2of4_Positionen_7_Query, GUICtrlRead($In_Pos7))
Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
If $Auftrags_Art_kurzel == "a" Then
Local $wert = "*6"
ElseIf $Auftrags_Art_kurzel == "s" Then
Local $wert = "*5"
EndIf
Local $Check_Data_2of4_Positionen_8_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_8")
If $Pos_6_Zeahler <> 0 Then
_IEFormElementSetValue ($Check_Data_2of4_Positionen_8_Query, $Pos_6_Zeahler & $wert)
Else
_IEFormElementSetValue ($Check_Data_2of4_Positionen_8_Query, "")
EndIf
Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_2of4_Comments_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "comment_1")
_IEFormElementSetValue ($Check_Data_2of4_Comments_Query, GUICtrlRead($Bemerkung)&@CRLF&"Techniker: "&$User)
_IE_Warteschleife("Positionen", $oIE)
If $raus == 44 Or @error Then ExitLoop
ElseIf $Page_1 = 5 Then
; Bearbeitung der achte Internetseite == > Pegelwerte
_IE_GUI_Moment()
Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_3of4_Pegel_HUP_S4_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "hupS4")
_IEFormElementSetValue ($Check_Data_3of4_Pegel_HUP_S4_Query, GUICtrlRead($In_HUEP_1))
Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_3of4_Pegel_HUP_K23_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "hupK23")
_IEFormElementSetValue ($Check_Data_3of4_Pegel_HUP_K23_Query, GUICtrlRead($In_HUEP_2))
Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_3of4_Pegel_Verst_S4_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "verstS4")
_IEFormElementSetValue ($Check_Data_3of4_Pegel_Verst_S4_Query, GUICtrlRead($In_VV_1))
Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_3of4_Pegel_Verst_K23_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "verstK23")
_IEFormElementSetValue ($Check_Data_3of4_Pegel_Verst_K23_Query, GUICtrlRead($In_VV_2))
Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_3of4_Pegel_Dose_S4_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "doseS4")
_IEFormElementSetValue ($Check_Data_3of4_Pegel_Dose_S4_Query, GUICtrlRead($In_Dose_1))
Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_3of4_Pegel_Dose_K23_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "doseK23")
_IEFormElementSetValue ($Check_Data_3of4_Pegel_Dose_K23_Query, GUICtrlRead($In_Dose_2))
Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_txof4_Pegel_Dose_K2tx_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "tx")
_IEFormElementSetValue ($Check_Data_txof4_Pegel_Dose_K2tx_Query, GUICtrlRead($In_TX))
Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_rxof4_Pegel_Dose_K2rx_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "rx")
_IEFormElementSetValue ($Check_Data_rxof4_Pegel_Dose_K2rx_Query, GUICtrlRead($In_RX))
Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_snof4_Pegel_Dose_K2sn_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "sn")
_IEFormElementSetValue ($Check_Data_snof4_Pegel_Dose_K2sn_Query, GUICtrlRead($In_SNR))
_IE_Warteschleife("Pegel", $oIE)
If $raus == 44 Or @error Then ExitLoop
ElseIf $Page_1 = 6 Then
; Bearbeitung der neunten Internetseite == > Start und End Zeiten und TV Auswahl
_IE_GUI_Moment()
Local $Check_Data_4of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_4of4_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_Data_4of4_Form, "tvSourceOfSupply")
_IEFormElementOptionSelect ($Check_Data_4of4_Combo_Empfang_Query, StringLower(GUICtrlRead($Combo_Empfang)),1 , "byValue")
Local $Check_Data_4of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_3of4_In_Startzeit_H_Query = _IEFormElementGetObjByName ($Check_Data_4of4_Form, "startHour")
_IEFormElementSetValue ($Check_Data_3of4_In_Startzeit_H_Query, GUICtrlRead($In_Startzeit_H))
Local $Check_Data_4of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_3of4_In_Startzeit_MIN_Query = _IEFormElementGetObjByName ($Check_Data_4of4_Form, "startMinute")
_IEFormElementSetValue ($Check_Data_3of4_In_Startzeit_MIN_Query, GUICtrlRead($In_Startzeit_MIN))
Local $Check_Data_4of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_3of4_In_Endzeit_H_Query = _IEFormElementGetObjByName ($Check_Data_4of4_Form, "finishHour")
_IEFormElementSetValue ($Check_Data_3of4_In_Endzeit_H_Query, GUICtrlRead($In_Endzeit_H))
Local $Check_Data_4of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_3of4_In_Endzeit_MIN_Query = _IEFormElementGetObjByName ($Check_Data_4of4_Form, "finishMinute")
_IEFormElementSetValue ($Check_Data_3of4_In_Endzeit_MIN_Query, GUICtrlRead($In_Endzeit_MIN))
_IE_Warteschleife("TV Auswahl", $oIE)
If $raus == 44 Or @error Then ExitLoop
ElseIf $Page_1 = 7 Then ; Störungscode
_IE_GUI_Moment()
Local $Check_faultCode_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_1of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_faultCode_Form, "faultCode")
_IEFormElementSetValue ($Check_code_1of3_Combo_Empfang_Query, GUICtrlRead($In_Code_1))
Local $Check_code_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_2of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_Form, "fixCode")
_IEFormElementSetValue ($Check_code_2of3_Combo_Empfang_Query, GUICtrlRead($In_Code_2))
Local $Check_code_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_3of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_Form, "solutionCode")
_IEFormElementSetValue ($Check_code_3of3_Combo_Empfang_Query, GUICtrlRead($In_Code_3))
Local $Check_Data_Comments = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_Data_Comments_Query = _IEFormElementGetObjByName ($Check_Data_Comments, "comment_1")
_IEFormElementSetValue ($Check_Data_Comments_Query, GUICtrlRead($Bemerkung))
_IE_Warteschleife("Entstörcode eingeben", $oIE)
If $raus == 44 Or @error Then ExitLoop
ElseIf $Page_1 = 8 Then ; Technikername usw.
_IE_GUI_Moment()
Local $Check_code_11of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_11of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_11of3_Form, "tekName")
_IEFormElementSetValue ($Check_code_11of3_Combo_Empfang_Query, $User)
Local $Check_code_12of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_12of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_12of3_Form, "tekPhone")
_IEFormElementSetValue ($Check_code_12of3_Combo_Empfang_Query, GUICtrlRead($La_PhoneNum_die_Nummer))
Local $Check_code_18of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_18of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_18of3_Form, "position_1")
_IEFormElementSetValue ($Check_code_18of3_Combo_Empfang_Query, GUICtrlRead($In_Pos1))
Local $Check_code_19of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_19of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_19of3_Form, "position_2")
_IEFormElementSetValue ($Check_code_19of3_Combo_Empfang_Query, GUICtrlRead($In_Pos2))
Local $Check_code_20of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_20of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_20of3_Form, "position_3")
_IEFormElementSetValue ($Check_code_20of3_Combo_Empfang_Query, GUICtrlRead($In_Pos3))
Local $Check_code_21of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_21of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_21of3_Form, "position_4")
_IEFormElementSetValue ($Check_code_21of3_Combo_Empfang_Query, GUICtrlRead($In_Pos4))
Local $Check_code_22of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_22of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_22of3_Form, "position_5")
_IEFormElementSetValue ($Check_code_22of3_Combo_Empfang_Query, GUICtrlRead($In_Pos5))
Local $Check_code_13of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_13of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_13of3_Form, "finishHour")
_IEFormElementSetValue ($Check_code_13of3_Combo_Empfang_Query, StringLower(GUICtrlRead($In_Endzeit_H)))
Local $Check_code_14of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_14of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_14of3_Form, "finishMinute")
_IEFormElementSetValue ($Check_code_14of3_Combo_Empfang_Query, StringLower(GUICtrlRead($In_Endzeit_MIN)))
Local $Check_code_15of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_15of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_15of3_Form, "finishDay")
_IEFormElementSetValue ($Check_code_15of3_Combo_Empfang_Query, StringLower(GUICtrlRead($Combo_Empfang)))
Local $Check_code_16of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_16of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_16of3_Form, "finishMonth")
_IEFormElementSetValue ($Check_code_16of3_Combo_Empfang_Query, StringLower(GUICtrlRead($Combo_Empfang)))
Local $Check_code_17of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_17of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_17of3_Form, "finishYear")
_IEFormElementSetValue ($Check_code_17of3_Combo_Empfang_Query, StringLower(GUICtrlRead($Combo_Empfang)))
_IE_Warteschleife("Positionen Endzeit", $oIE)
If $raus == 44 Or @error Then ExitLoop
ElseIf $Page_1 = 19 Then ; Error - Work order is not a single installation
_IE_GUI_Moment()
Local $Check_code_11of3_Form = _IEFormGetObjByName($oIE, "orderDetails")
Local $Check_code_11of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_11of3_Form, "Work order is not a single installation")
_IEFormElementOptionSelect ($Check_code_11of3_Combo_Empfang_Query, StringLower(GUICtrlRead($Combo_Empfang)),1 , "byValue")
_IE_Warteschleife("Positionen Endzeit", $oIE)
If $raus == 44 Or @error Then ExitLoop
[/autoit] [autoit][/autoit] [autoit]
ElseIf $Page_1 = 20 Then
_IEQuit ($oIE)
GUIDelete($MomentBitte)
ExitLoop
ElseIf $Page_1 = 45 Then
; bei Störungen auf der Weboberfläche zB: Error API
_IEQuit ($oIE)
GUIDelete($MomentBitte)
$raus = 45
ExitLoop
ElseIf Not $Page_1 Then
ConsoleWrite(" ElseIf Not $Page_1" & @CR)
If $Wenn_Page_0_ist == 0 Then
GUIDelete($MomentBitte)
$Wenn_Page_0_ist = 1
EndIf
If $raus == 44 Or @error Then ExitLoop
;ExitLoop
EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
ConsoleWrite(" ganz unten bei wend" & @CR)
WEndFunc _IE_GUI_Moment()
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$MomentBitte = GUICreate("", 292, 68, -1, -1)
Local $Label1 = GUICtrlCreateLabel("Einen moment bitte...", 16, 24, 103, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###EndFunc
[/autoit] [autoit][/autoit] [autoit]; $name_wert dient nur als Name für die Unterscheidung in ConsoleWrite
[/autoit] [autoit][/autoit] [autoit]
Func _IE_Warteschleife($name_wert, $oIE_input)
Local $Wartezeit = 1000
Local $Wartezeit_1 = 500
Local $html=_IEDocReadHTML($oIE_input)
Local $a = 0
While 1
Local $html_1=_IEDocReadHTML($oIE_input)
If @error Then ; bewirkt das bei einem Abbrechen der Webprozeßes der Übergang zum Montagetool ordendlich erfolgt
$raus = 44
ExitLoop
EndIf
If $html == $html_1 Then
ConsoleWrite(" If vor Sleep in "&$name_wert&"" & @CR)
If $a == 0 Then
;_IE_GUI_Moment()
Sleep($Wartezeit)
GUIDelete($MomentBitte)
$a = 1
EndIf
ConsoleWrite(" If nach Sleep in "&$name_wert&"" & @CR)
ElseIf $html <> $html_1 Then
ConsoleWrite(" ElseIf ExitLoop in "&$name_wert&"" & @CR)
ExitLoop
Else
ConsoleWrite(" Else in "&$name_wert&"" & @CR)EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit]
Sleep($Wartezeit_1)
ConsoleWrite(" Am unteren Ende der While bei "&$name_wert&"" & @CR)
WEnd
ConsoleWrite(" unter wend in der Warteschleife "&$name_wert&" warten" & @CR)
EndFuncJetzt muss ich dzu sagen das die Internetseite aus 6 Seiten besteht die mit Informationen befüllt werden.
Und jedes mal wenn man auf Next / Submit klickt gehts halt zur nächsten Seite die dann automatisch mit den
Informationen die vorher in einer GUI abgefragt wurden befühlt werden.
Nun habe ich in jeden Case eine art wartenschleife eingebaut in der das Script nach dem befühlen der Input-
felder der aktuellen Seite wartet bis sich der Quelltext der Seite ändert um dann wieder nachzusehen ob für
die nächste Seite Informationen in Inputfelder gehören.
Mein Problem ist nun das ich es bis jetzt nicht geschafft habe zwischen dem klick auf Submit und dem fertigen ausladen
der nächsten Internetseite eine kleine GUI im Vordergrund stehen zu haben da ja meine kleine Warteschleife verhindert
das das Script weiterläuft bevor sich der Quelltext verändert. So entsteht momentan der Effekt das diese kleine GUI
mit dem Namen _IE_GUI_Moment() erst viel zu spät angezeigt wird und somit ihren zweck nicht erfüllen kann.
Jetzt hab ich mit überlegt wie ich dem Problem begegnen könnte und hab ein wenig zum Thema WinAPI gestöbert und habe mit doch
tatsächlich etwas basteln können was die linke Maustaste abfängt.
Daraus hab ich mir dann unter zuhilfename der neuen Autoithilfe von euch hier diese beiden Funktionen zusammen geschustert.Spoiler anzeigen
[autoit]Func _Funktion_WinApi_Hook_Empfang_Maus_Eingabenachrichten($einODaus=0)
[/autoit] [autoit][/autoit] [autoit]
Local $hmod
If $einODaus == 1 Then$hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$hmod = _WinAPI_GetModuleHandle(0)
$hHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod)
Else
; Entfernt eine "Hook"-Prozedur die durch eine "Hook"-Kette durch die _WinAPI_SetWindowsHookEx installiert wurde
_WinAPI_UnhookWindowsHookEx($hHook)
DllCallbackFree($hStub_KeyProc)
EndIf
EndFuncFunc _KeyProc($nCode, $wParam, $lParam)
[/autoit]
Local $tKEYHOOKS
$tKEYHOOKS = DllStructCreate($tagTBBUTTONINFO, $lParam)
If $nCode < 0 Then
Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
EndIf
;ConsoleWrite("Func - _Funktion_WinApi_Hook -- Auserhalb $wParam = " & $wParam & " $tKEYHOOKS " & $tKEYHOOKS & @CRLF)
If $wParam = 513 Then ; 513 ist der Wert der geliefert wird wenn man die linke Maustaste klickt
Local $flags = DllStructGetData($tKEYHOOKS, "Param")
;ConsoleWrite("Func - _Funktion_WinApi_Hook_Empfang_Maus_Eingabenachrichten -- Der Wert 513 wurde erkannt $wParam = " & $wParam & " $tKEYHOOKS = " & $tKEYHOOKS & @CRLF)
ConsoleWrite("____________________________________________________________________________" & @CRLF)
ConsoleWrite("*****Param = " & $flags & @CRLF)
ConsoleWrite("____________________________________________________________________________" & @CRLF)
If $flags = "0x7E3693E9" Then ConsoleWrite("0x7E3693E9 wurde als Submit wiedererkannt." & @CRLF)
;If $flags = "0x7E3693E9" Then ConsoleWrite("0x7E3693E9 wurde als Next wiedererkannt." & @CRLF)
;~ Switch $flags
;~ Case $LLKHF_ALTDOWN
;~ ConsoleWrite("$LLKHF_ALTDOWN" & @LF)
;~ Case $LLKHF_EXTENDED
;~ ConsoleWrite("$LLKHF_EXTENDED" & @LF)
;~ Case $LLKHF_INJECTED
;~ ConsoleWrite("$LLKHF_INJECTED" & @LF)
;~ Case $LLKHF_UP
;~ ConsoleWrite("$LLKHF_UP: scanCode - " & DllStructGetData($tKEYHOOKS, "scanCode") & @TAB & "vkCode - " & DllStructGetData($tKEYHOOKS, "vkCode") & @LF)
;~ EndSwitch
EndIf
Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
EndFunc ;==>_KeyProcJetzt bin ich nun soweit das ich es schaffe eine Reaktion zu erzeugen mit der ich aber leider noch nix anfangen kann da ich
momentan nur mitbekomme das die linke Maustaste geklickt wurde. Aber wie schaffe ich es nun eine Information abzufangen
die mit eindeutig sagt das es sich um einen Submit -oder Next Button handelt ????Ich hoffe ich habe es einigermassen gut beschrieben und würde mich über eine kleine hilfe sehr freuen.
Danke Euer Jan
-
Hi Ihr
ich hab jetzt bei diesem kleinen Versuch rum probiert ob ich es schaffe die fünf Lables in der Gruppe zu scrollen zu bringen.
Leider ohne Erfolg. Geht das garnet oder stell ich mich nur an.
Im letzeren Falle wäre ein Link zum Thema oder ein Beispiel net schlecht.Danke schon mal im Voraus
Der Jan
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <StaticConstants.au3>
#include <WindowsConstants.au3>#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1_1 = GUICreate("Form1", 626, 428, 192, 114)
$Group1 = GUICtrlCreateGroup("Group1", 72, 64, 497, 153, BitOR($BS_LEFT,$WS_VSCROLL))
GUICtrlSetResizing(-1, $GUI_DOCKVCENTER)
$Label1 = GUICtrlCreateLabel("Label1", 104, 96, 36, 17, $WS_GROUP)
$Label2 = GUICtrlCreateLabel("Label2", 104, 120, 36, 17, $WS_GROUP)
$Label3 = GUICtrlCreateLabel("Label3", 104, 152, 36, 17, $WS_GROUP)
$Label4 = GUICtrlCreateLabel("Label4", 104, 184, 36, 17, $WS_GROUP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Label5 = GUICtrlCreateLabel("Label5", 104, 216, 36, 17, $WS_GROUP)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit]
WEnd -
Danke füe Deine Geduld mit mir BugFix. Du hast ja auch ne nette Hifeseite.
Ich muss mich noch nochmal reinknien. Da ich grade feststelle das es ja doch noch nicht
so läuft wie ich das dachte.Momentan ist es so das zB "a" aus dem Array1 einen komplette Zeile aus der Exceltabelle bekommt.
Das wollt ich anders machen.dh
wenn ich also in der Exceltabelle stehen habe:
und mein zweites Array sieht so aus:
[autoit]$Array[4]=["WERT1", "WERT2","WERT3","WERT4"]
[/autoit]dann wollte ich erreichen das folgendes passiert:
1a zu WERT1
2a zu WERT2
3a zu WERT3
4a zu WERT4und dann wieder von vorne...
1b zu WERT1
2b zu WERT2
3b zu WERT3
4b zu WERT4Sorry wenn ich mich vieleicht vorher nicht richtig ausgedruckt haben sollte.
Aber das war nicht meine Absicht Dich zu verwirrenGruß Jan
-
oder auch mit dieser Funktion.
[autoit]
Lies mal dazu in der Hilfe von AutiIT nach. Das ist dort recht gut beschrieben.
Das hab sogar ich recht zeitig kappiert. :wacko:_IEFormSubmit
[/autoit] -
Danke Bugfix für die Hilfe aber das muss ich erstmal setzten lassen.
Es funktioniert jetzt so wie ich es mir vorstelle.
Ich muss das erstmal versuchen langsam zu begreifen.
Ich habs nehmlich immer noch nicht gerafftzB das hier:
[autoit]Local $array2[4][5]
[/autoit]heist das nicht es sind 4 dimensionen mit jeweils 5 Einträgen???
oder ist das nur ein fiktiver Wert weil wenn ich das richtig interpretiere kommt wohl weiter unten der richtige Wert rein.
[autoit]$array2[$i][0] = $array1[$i]
[/autoit]Stimmt der Gedankengang ???
Gruß Jan
-
Naja ich begreif das nett...
also genau den Teil be deinem Bsp:
Local $array1[4] = ['a','b','c','d']
Local $array2[4] = ['a1;a2;a3','b1;b2;b3','b1;b2;b3;b4;b5','b1;b2;b3']über die brück komm ich grad net...
das ist doch in meine Fall anders oder nicht???
der zweite teil steht doch nicht so daLocal $array2[4] = ['a1;a2;a3','b1;b2;b3','b1;b2;b3;b4;b5','b1;b2;b3']
sonder das steht doch in einer $variable...
und das versteh ich nicht wie kommt es dann dazu das diese r string verwendet wird...
Nochmal als Erklärung wie der Fall gelagert ist:
Einmal habe ich Werte die fest stehen und somit auch so wie man es in vielen Fallbeispielen hier beschrieben bekommt so aussieht:
[autoit]Local $array1[4] = ['a','b','c','d']
[/autoit]
Ok versteh ich ich habe vier Wert. a,b,c,dDann lese ich aber noch eine Exceltabelle aus mit:
[autoit]Local $sFilePath1 = @ScriptDir & "\EuF_090423.xls";This file should already exist
[/autoit][autoit][/autoit][autoit]Local $oExcel = _ExcelBookOpen($sFilePath1, 0)
[/autoit]
Local $aArray = _ExcelReadArray($oExcel, 4, 1, 4);Direction is Horizontal
Local $sArrayString = _ArrayToString( $aArray,",", 0, 4 )Und in dieser Variable steht dann zB: "1,2,3,4"
Jetzt hab ich eine Variable $sArrayString in der meine Werte stehen getrennt durch ein Komma.
[autoit]
So und wie schffe ich es nun diese Werte so zu wandeln das es am ende in etwa so aussieht:Local $array1[2][4] = [['a','b','c','d'],["1","2","3","4"]]
[/autoit]Ich hoffe Du kannst es mir begreiflich machen weil ich bin mir sicher in Deinem Beispiel ist schon viel erklärt aber ich verstehe wohl noch nicht.
Gruß Jan
-
Hallo BugFix,
genau das begreiff ich grad nicht...
ich habe doch zwei Quellen mit Daten.
Einmal eine Quelle mit fest vorgegebenen Daten. Also die hier
Dim $arGrid[2][4] = [["Paul", "Jim", "Richard", "Louis"], [$sArrayString]]
und dann habe ich Daten aus einer Exceltabelle die ich mit der Funktion _ExcelReadArray($oExcel, 4, 1, 4) auslesen muss
und über $sArrayString = _ArrayToString( $aArray,",", 0, 4 ) in $sArrayString stehen hab wenn ich das richtig verstanden habe.
In $sArrayString stehen dann auch 4 Werte die durch ein Komma von einander getrennt sind.Das wäre dann der teil
Dim $arGrid[2][4] = [["Paul", "Jim", "Richard", "Louis"], [$sArrayString]]
Blos dieser Teil wird wohl als ein Wert interprtiert...
Wie schafe ich es nun das dort die vier Werte auch aufgeteilt werden wie bei ["Paul", "Jim", "Richard", "Louis"],Gruß Jan
-
Ich hatte da auch rumgebastelt.
Vieleicht hilft Dir das ja auf die Sprünge.Spoiler anzeigen
[autoit]$test=_MSI_installer("Text\test.exe")
[/autoit] [autoit][/autoit] [autoit]MsgBox(0,"",$test)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _MSI_installer($msi_input)
[/autoit] [autoit][/autoit] [autoit]$StrLen = StringLen($msi_input)
[/autoit] [autoit][/autoit] [autoit]
$StrInStr = StringInStr($msi_input, "\")
$Teilung_Str = $StrLen - $StrInStr + 1
$Rechts_Abschneiden = StringTrimRight($msi_input, $Teilung_Str)
$Rechts_Abschneiden_K_Leerz = StringStripWS($Rechts_Abschneiden,
$Links_Abschneiden = StringTrimLeft($msi_input, $StrInStr - 1)Return $Links_Abschneiden
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit]Gruß Jan
-
zum Verständniss:
mir ist nicht ganz klar wie man Daten aus einer datei über´gibt das es dann quais so aussieht:
["Paul", "Jim", "Richard", "Louis"]
wenn ich jetzt ein 2d Array hätte das so aussieht würde ich es verstehen:
["Paul", "Jim", "Richard", "Louis"]
["1", "2", "3", "4"]aber meins sieht ja nun mal so aus
Dim $arGrid[2][4] = [["Paul", "Jim", "Richard", "Louis"], [$sArrayString]]
und der Punkt da [$sArrayString]] denn hab ich nicht begriffen.
Das sieht dann so aus:
[Blockierte Grafik: http://www.trattoria-teggiano.de/bild/bild.JPG]
Da ist sicher was falsch ... aber was
Gruß Jan
-
Danke für den heissen Tip.
Ich komm der Sache schon näherSpoiler anzeigen
[autoit]#include <Excel.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <array.au3>Local $sFilePath1 = @ScriptDir & "\EuF_090423.xls";This file should already exist
[/autoit] [autoit][/autoit] [autoit]Local $oExcel = _ExcelBookOpen($sFilePath1, 0)
[/autoit] [autoit][/autoit] [autoit]
Local $aArray = _ExcelReadArray($oExcel, 4, 1, 4);Direction is Horizontal
Local $sArrayString = _ArrayToString( $aArray,",", 0, 4 )Dim $arGrid[2][4] = [["Paul", "Jim", "Richard", "Louis"], [$sArrayString]]
[/autoit]
_ArrayDisplay($arGrid, "_ArrayDisplay() 2D Test", 1, 1) ; [2D, transposed]Aber leider funktioniert es noch nicht ganz.
Momentan wird der teil [["Paul", "Jim", "Richard", "Louis"] richtig dargestellt
Aber wird nicht richtig dargestellt. -
Ja ich schon wieder...
ich wollt mal frage ob mir jemand mit einen Tip oder Beispiel bei meinem Problem auf die Sprünge helfen könnte.
Was ich grad machen möchte ist folgendes. Es gibt eine Exceldatei die ich Zeilenweise auslesen möchte
mit $aArray = _ExcelReadArray($oExcel, 2, 1, 31)
und dazu parallel eine weiter Varialble auslesen möchte in der die Spaltennamen aus der SQL DB stehen
$aArray1 = StringSplit( "WONUMMER, WOTYP, TELPLUSAUFTRAG, ORDER....
um letztlich in der Datenbank dann anhand zB des SQL Spaltennamens WONUMMER den ersten eintrag aus der Exceltabelle
zuzuordnen.Ich hab schon viel rumprobiert.... aber ich merke immer wieder ich habs wohl noch nicht begriffen.
hier erstmal mein letzter Versuch:
Spoiler anzeigen
[autoit]#include <Excel.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <array.au3>_Excel_File_Read("EuF_090423.xls")
[/autoit] [autoit][/autoit] [autoit]Func _Excel_File_Read($input_File_Name)
[/autoit] [autoit][/autoit] [autoit]
Local $sFilePath1 = @ScriptDir & "\" & $input_File_Name;This file should already existLocal $r=1
[/autoit] [autoit][/autoit] [autoit]
Local $aArray1 = StringSplit( "WONUMMER, WOTYP, TELPLUSAUFTRAG, ORDERENTRY, TERMIN, TIMESLOT, TECHNIKER ,KDNR, VORNAME, NACHNAME, PLZ, ORT, STRASSE, HSNR, HSNRZUSATZ, RFNRPRIVAT ,UNITYRFNR, SONSTIGERFNR, WEOBJEKT, HSKOMMENTAR, FIBERNOTE, CLINE, ADRESSEUP ,L4AUSBAUTYP, L4AUSBAUDATUM , L4NETZSTRUKTUR, SCREAMBLEDID, INSTHARDWARE, F2KOMMENTAR, AKTIVEHSI", ",")
Local $oExcel = _ExcelBookOpen($sFilePath1, 0)Local ;Direction is Horizontal
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Dim $sArrayString = _ArrayToString( $aArray,";", 0, 31 )
[/autoit] [autoit][/autoit] [autoit]
Local $aArray=StringSplit($sArrayString,";")
For $i=1 To $aArray[0]
For $r=1 To $aArray1[0]
MsgBox(0,"","Der Excelwert: " & $aArray[$i] & " und der SQL Wert: " & $aArray1[$r] )
next
Next_ExcelBookClose($oExcel) ; And finally we close out
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit]Dann hab ich es nochmal nochmal so probiert was meinen wunsch schon entsprach blos zum schluß kommt ein Fehler.
==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:hier wäre dann noch dieses Script.
Spoiler anzeigen
[autoit]#include <Excel.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <array.au3>_Excel_File_Read("EuF_090423.xls")
[/autoit] [autoit][/autoit] [autoit]Func _Excel_File_Read($input_File_Name)
[/autoit] [autoit][/autoit] [autoit]Local $sFilePath1 = @ScriptDir & "\" & $input_File_Name;This file should already exist
[/autoit] [autoit][/autoit] [autoit]Local $r=1
[/autoit] [autoit][/autoit] [autoit]
Local $aArray1 = StringSplit( "WONUMMER, WOTYP, TELPLUSAUFTRAG, ORDERENTRY, TERMIN, TIMESLOT, TECHNIKER ,KDNR, VORNAME, NACHNAME, PLZ, ORT, STRASSE, HSNR, HSNRZUSATZ, RFNRPRIVAT ,UNITYRFNR, SONSTIGERFNR, WEOBJEKT, HSKOMMENTAR, FIBERNOTE, CLINE, ADRESSEUP ,L4AUSBAUTYP, L4AUSBAUDATUM , L4NETZSTRUKTUR, SCREAMBLEDID, INSTHARDWARE, F2KOMMENTAR, AKTIVEHSI", ",")
Local $oExcel = _ExcelBookOpen($sFilePath1, 0)Local $aArray = _ExcelReadArray($oExcel, 4, 1, 31) ;Direction is Horizontal
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Dim $sArrayString = _ArrayToString( $aArray,";", 0, 31 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Local $aArray=StringSplit($sArrayString,";")
[/autoit] [autoit][/autoit] [autoit]
;Local $aArray1=StringSplit($sArrayString1,"")For $i=1 To $aArray[0]
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0,"","Der Excelwert: " & $aArray[$i] & " und der SQL Wert: " & $aArray1[$r] )
$r+=1
Next_ExcelBookClose($oExcel) ; And finally we close out
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit]Wäre nett wen mir jemand wieder auf den Weg helfen würde.
Gruß Jan
-
wenn das jetzt so einfach war.... muss ich jetzt einen Saufen ... mitten am Tag
Ich hab die halbe nach.... NICHT LACHEN :wacko:danke erstmal