Wo der ExBerliner Recht hat, hat er Recht :).
Ich hoffe ihr könnt bei einem alten Mann etwas Nachsicht üben. ![]()
Beiträge von BugFix
-
-
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.
-
Zitat
was muß ich dann noch in AutoIt machen, damit die beim Drücken von F1 auch geöffnet wird und vor allem die richtige Hilfe zur gewünschten Funktion?
Wenn es über die AutoIt-Hilfe laufen soll, mußt du diese vorher mit dem HTML Workshop decompilen, deine eigenen Dateien einfügen, entsprechend indexieren (Aufpassen, dass du nichts zerschießt :P) und dann die Hilfe neu kompilieren. -
AutoIt muß ja die Skriptanweisungen irgendwoher lesen können.
Solange du die Befehle nur in SciTE eintippst, existieren sie ja noch nicht in lesbarer Form. Erst durch das Abspeichern kann das Geschriebene auch wieder gelesen werden.Aber warum die Frage?
Du mußt doch sowieso eine Datei erstellen um die Codezeilen zu schreiben - warum willst du sie nicht speichern ?? *kopf-kratz* -
Flashgame, nicht Mausgesteuert - dann sehe ich hier keine Möglichkeit.
-
Verwende HTML Workshop, ist Free: HTML Download
Falls Du eine Hilfe zur Anwendung brauchst, melde dich nochmal.EDIT
Hier gleich mal die deutsche Anleitung dazu. -
-
Die Ergebnisse der Suche (alles was zwischen öffnender und schließender Klammer ist, aber nicht die Klammern selber, werden in einem Array gespeichert.
[autoit]$Array = _StringBetween($str, '\(', '\)', -1, 1)
[/autoit]
[autoit]
Dieses Array wird jetzt Eintrag für Eintrag durchlaufenFor $i = 0 To UBound($Array) -1
[/autoit]
[autoit]
Jedes Element des Arrays ist ein gefundener Ausdruck zwischen Klammern. Dieser Ausdruck wird jetzt durch einen Leerstring ersetzt.
Dazu werden zum gefundenen Ausdruck jetzt wieder die Klammern angefügt, damit diese mit ersetzt werden.
Vor der öffnenden Klammer wird außerdem ein Lerzeichen mit angefügt (und somit ersetzt), weil sonst 2 Leerzeichen nebeneinander stehen würden, eines das vor und eines das nach dem Klammerausdruck im Text steht.$str = StringReplace($str, ' (' & $Array[$i] & ')', '')
[/autoit]
Next -
Kann dir grad nicht folgen.
Deine per HotKey aufgerufene Funktion kann doch erst dann greifen, wenn momentan dein Programm 'idlet' - also z.B. auf GUI-Msg oder ein Event wartet.
Willst du wissen, welche Msg/Event davor aktiviert war? - Dann schreib doch für jedes Ereignis einen LOG-Eintrag in ein Logfile, das du, um es nicht überlaufen zu lassen, bei jedem Programmstart löschst.