Beiträge von BugFix
-
-
Also die Einwahl machst du zu kompliziert :).
Ich habe hier das Bsp. anhand der FritzBox 7141, aber die Menüoberfläche ist bei den FB eigentlich gleich:Spoiler anzeigen
[autoit]#include <ie.au3>
[/autoit] [autoit][/autoit] [autoit]
Global $pass = 'PASSWORT'
Global $oIE = _IECreate('http://fritz.box/')
_WaitMenu()
Global $oFrame = _IEFrameGetCollection ($oIE, 0)
Global $oForm = _IEFormGetCollection($oFrame, 1) ; Referenz auf "uiViewForm"
Global $oPass = _IEFormElementGetCollection($oForm, 0) ; Referenz auf PW-Eingabe
Global $oBtnLogin = _IEFormElementGetCollection($oForm, 1) ; Referenz auf 'Anmelden' Button_IEFormElementSetValue($oPass, $pass)
[/autoit] [autoit][/autoit] [autoit]
_IEAction($oBtnLogin, 'click')
_WaitMenu()Func _WaitMenu()
[/autoit]
$n = 0
Do
Sleep(200)
$txt = _IEPropertyGet($oIE, "statustext")
If $txt = 'Fertig' Then $n += 1
Until $n = 2
Sleep(1500)
EndFunc
Jetzt bist du auf der Menüseite, dort werden zwar Java-Scripte aufgerufen - aber auf den ersten Blick würde ich sagen das ist Tabellenformat. Ich schau es mir mal näher an. Wenn ich Zugriff finde poste ich es.Edit: Da der IE bei jeder Einwahl unterschiedliches Zeitverhalten hat, habe ich mal noch eine Warteroutine eingefügt, damit das Objekt auch sicher geladen ist. Allein die Statusmeldung 'Fertig' reicht dafür leider nicht, da Fertig nür für die zu ladenden Komponenten gilt. Evtl. auszuführende Java-Scripte werden anscheinend nicht berücksichtigt.
-
Ach dein Firefox heißt "Penner" -
Naja, bischen langsam ist der Fuchs ja. -
Dann schmiert dein PC ab, weil du 100.000 Instanzen von Firefox startest
-
Und was soll in der Endlosschleife passieren? Worauf wartet diese, was ist das Abbruchkriterium?
[autoit]
*Kristallkugel-reib*
Eine Endlosschleife ist z.B.While 1
[/autoit]
; irgendwas oder auch nix
WEnd -
Ja, für Standard-Controls kannst du die UDF-Func nicht immer verwenden.
-
Zitat
schon mal an einen pdf-writer gedacht ?
Man, der Kerl hat schon wieder Recht - richtig unheimlichIch habe z.B. auf meinem Schlepptop PDFCreator als Standard-Drucker und bei allen Geschäftsabwicklungen übers Internet, "drucke" ich entsprechende Seiten als PDF-File aus.
-
Wo der ExBerliner Recht hat, hat er Recht :).
Ich hoffe ihr könnt bei einem alten Mann etwas Nachsicht üben. -
Ich versteh nicht, warum du Strasse und Stadt in unterschiedlichen Arrays führen willst. Zusammengehörige Daten sollten auch zusammen gespeichert werden.
Wenn du einzelne Arraydaten anzeigen möchtest, mußt du die Elemente einzeln ansprechen.
[autoit]For $i = 0 To UBound($array) -1
[/autoit]
MsgBox(0, '', 'Wert an Position ' & $i & ': ' & $array[$i])
Next
[autoit]
Ein 2D-Array mit 2 Spalten gibst du so wieder:For $i = 0 To UBound($array) -1
[/autoit]
MsgBox(0, '', 'Wert an Position ' & $i & ', Spalte 1: ' & $array[$i][0] & @CRLF & _
'Wert an Position ' & $i & ', Spalte 2: ' & $array[$i][1])
NextHilfe zu Arrays findest du hier
-
Irgendwo ein Schreibfehler?
Ich hatte zum Test ein Array erstellt, also nach dem Schritt _FileReadToArray() begonnen.
Da klappte es tadellos.Hier mal mein funktionierendes Muster:
Spoiler anzeigen
[autoit]#include <array.au3>
[/autoit] [autoit][/autoit] [autoit]
Dim $aRecords[4] = [ _
0, _
'BLA/KAT1/Firma1/Strasse1/Ort1 Bemerkung1 * zeit *', _
'BLUB/KAT2/Firma2/Strasse2/Ort2 Bemerkung2 * zeit *', _
'BLI/KAT3/Firma3/Strasse3/Ort3 Bemerkung3 * zeit *']
Dim $var
;~ If Not _FileReadToArray("test.txt",$aRecords) Then Exit MsgBox(4096,"Fehler", "Konnte Datei nicht in Array einlesen! error: " & @error)
;~ Dim $aAdresse[$aRecords[0]][2]
Dim $aAdresse[3][2]For $i = 1 To UBound($aRecords) -1
[/autoit]
$var = StringSplit($aRecords[$i], '/')
If Not @error Then
$aAdresse[$i-1][0] = $var[4] ; Strasse
$aAdresse[$i-1][1] = StringTrimRight($var[5], StringLen($var[5])-StringInStr($var[5], '*')+1 ) ; Ort + Bemerkung
EndIf
Next
_ArrayDisplay($aAdresse) -
Mit
[autoit]_GUICtrlListBox_SetCaretIndex ($hListBox, $Index_des_Eintrags)
[/autoit]Für diese Dinge benötigst du zwingend die GUIListBox.au3 - Funktionen.
-
Wie maycontainnuts schon richtig erwähnte, mit GUICtrlSetData().
[autoit]
Die Daten für einzelne Zeilen werden mit Seperator '|' getrennt:GUICtrlSetData($Lst, 'Zeile1|Zeile2|Zeile3|Zeile4')
[/autoit]Für das Hinzufügen von Zeilen zu bestehendem Text kannst du diese Funktion nutzen, es wird immer neu ans Ende angefügt.
Möchtest du innerhalb der Liste auf einzelne Einträge zurückgreifen, brauchst du die Funktionen der UDF GuiListBox.au3. -
Hi, anhand der Originaldaten, die du mir per PN geschickt hattest, zeigt sich, dass die Struktur einheitlich ist.
[autoit]
KENNUNG/KATEGORIE/FIRMA/STRASSE/STADT-Bemerkung-Zeit
Ich habe berücksichtigt, dass evtl. keine Angaben in den einzelnen Gruppen vorhanden sein können, wie in einem Muster Datensatz.
Da Angaben für Stadt durchaus mehrere Wörter enthalten können (Bad Homburg) läßt sich Stadt nicht eindeutig selektieren. In meiner Lösung 'hängt' eine evtl. Bemerkung noch am Städtenamen, Zeit ist eleminiert.#include <file.au3>
[/autoit][autoit][/autoit][autoit]
Dim $aRecords, $var
If Not _FileReadToArray("test.txt",$aRecords) Then Exit MsgBox(4096,"Fehler", "Konnte Datei nicht in Array einlesen! error: " & @error)
Dim $aAdresse[$aRecords[0]][2]For $i = 1 To UBound($aRecords) -1
[/autoit]
$var = StringSplit($aRecords[$i], '/')
If Not @error Then
$aAdresse[$i-1][0] = $var[4] ; Strasse
$aAdresse[$i-1][1] = StringTrimRight($var[5], StringLen($var[5])-StringInStr($var[5], '*')+1 ) ; Ort + Bemerkung
EndIf
NextEDIT: Noch mal kpl. geändert. Das RegEx Pattern funktioniert unter AutoIt leider nicht so, wie im RegExBuddy.
-
??
Das hatten wir doch schon mal in einem anderen Thread gelöst. *verwirrt-bin*
Aber ist es hier nicht günstiger, statt des Quelltextes sich den Text der Seite ausgeben zu lassen? _IEBodyReadText() -
Zitat
Habe irgendwo gelesen das AutoIt die Groß und klein schreibung bei den Variablen als verschiedene Variablen ansieht?!?!
Definitiv NEIN.
$Var = $var = $VAr = $vAr = $vaR ....Teste es einfach, weise einer Variablen einen Wert zu, und gib ihn mit gleichem Namen, aber anderer Schreibweise aus. Null Problemo
-
Hmm...
jetzt weiß ich genau soviel, wie vorher :D.
STR und ORT sind an derselben Position. Es ist doch egal wieviel WORTE davor sind. Wichtig ist, ob die Gruppierung durch / immer identisch ist.
Und nach dem Ort folgt nur eine Uhrzeit? Dann gib mal genau an in welcher Schreibweise.
Zier dich nicht wie ien alte Jungfer , und poste mal einen Original-Datensatz (kannst die Werte ja verfälschen). -
Also wenn die Position von STR und ORT unterschiedlich sein kann, brauchst du andere Kriterien für die Selektion.
Was sind denn das für Daten davor und danach. Weisen die eine Struktur auf anhand der man sie eleminieren kann?
Oder steht bei der Stadt evtl. auch die PLZ davor - dann könnte man den Ausdruck davor (STR) und den danach (ORT) selektieren.
Besser ist, du postest mal einige dieser Einträge im Original, damit man sich ein Bild machen kann. -
Hi, nur nicht so kompliziert.
Folgende Fehler:
- Keine Pfadangabe bei FileGettIme
- falsches Ausgabeformat bei FileGetTimeSo wirds was:
[autoit]#include <file.au3>
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
#include <date.au3>
$path = "c:\testordner"
$d_ListFiles = _FileListToArray($path, '*.log', 1)For $i = 1 to UBound($D_ListFiles) -1
[/autoit]
$d_Time = Filegettime($path & '\' & $D_Listfiles[$i],1,1)
If _DateDiff("d",$d_Time,_NowCalcDate()) > 13 Then
Filedelete($D_ListFiles[$i])
EndIf
Next -
Hi,
[autoit]
schreib doch Strasse + Stadt in ein Array:#include <file.au3>
[/autoit][autoit][/autoit][autoit]
Dim $aRecords, $var
If Not _FileReadToArray("test.txt",$aRecords) Then Exit MsgBox(4096,"Fehler", "Konnte Datei nicht in Array einlesen! error: " & @error)
Dim $aAdresse[$aRecords[0]][2]For $i = 1 To UBound($aRecords) -1
[/autoit]
$var = StringSplit($aRecords[$i], '/')
If Not @error Then
$aAdresse[$i-1][0] = $var[3] ; Strasse
$aAdresse[$i-1][1] = $var[4] ; Stadt
EndIf
Next -
Dann schreib es doch einfach in eine temporäre Datei, die kannst du dann ausführen und hinterher wieder löschen.