1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. diepfeile

Beiträge von diepfeile

  • einfaches dauerhaftes speichern von optionen

    • diepfeile
    • 10. Juni 2010 um 21:55

    ich möchte gerne ein paar variablen scriptstart übergreifend speichern, nur weis ich nicht genau wie ichs am einfachsten mache.
    meine ideen waren etwas wie

    Code
    $TextFileName = @ScriptName
    $FindText = "$var = """""
    $ReplaceText = "$var = ""blup"""
     $FileContents = FileRead($TextFileName)
    $FileContents = StringReplace($FileContents,$FindText,$ReplaceText)
    FileDelete($TextFileName)
    FileWrite($TextFileName,$FileContents)


    aber dann ists ja eigetnlich hardcoded, was ich nicht will.
    meine zweite idee war es in einer anderen datei zu speichern, aber dann geht der "array im array"-spass wieder beim auslesen los.
    gibts da nicht noch eine feinere methode?

  • avidemux automatisieren

    • diepfeile
    • 9. April 2010 um 22:32

    irgendwie bekomm ich bei avidemux 2.5.2 die elemente, zb um das format zu ändern, nicht angesprochen. kann mir jemand da helfen?

    [autoit]

    AutoItSetOption("WinTitleMatchMode",2); teilweise-match zulassen
    $win = " - Avidemux"
    $file = StringTrimRight(WinGetTitle($win),11) ; trimming " - Avidemux"
    ;MsgBox(0,"",$file) ; name des geöffnetes files für später

    [/autoit][autoit][/autoit][autoit]

    ControlListView($win,"","QWidget","Select",11) ; mkv container selectieren

    [/autoit]
  • Umlaute machen Probleme

    • diepfeile
    • 8. April 2010 um 22:00
    [autoit]

    #include <FF.au3>
    If Not _FFConnect("127.0.0.1",4242) Then
    MsgBox(64,"Fail","Can't connect to FireFox!")
    Exit
    EndIf
    $data = _FFReadHTML("html",7)
    ;ClipPut($data)

    [/autoit][autoit][/autoit][autoit]

    Run("notepad.exe")
    WinWaitActive("Unbenannt - Editor")
    ControlSetText("Unbenannt - Editor","","Edit1",$data)
    _FFDisConnect()

    [/autoit]


    funzt zwar, nur die umlaute werden als leerzeichen übertragen. was kann man dagegen machen? seiten auf denen es zu diesem problem kommt: http://www.autoit.de/dokumentation/…pad/notepad.htm

  • _FFReadHTML klappt nicht immer

    • diepfeile
    • 9. März 2010 um 01:17

    nachdem ich eine seite mit _FFOpenURL geöffnet habe, probiere ich sie mit _FFReadHTML("body",7) auszulesen. aber nur in wenigen fällen klappt es. meist klappt das aber nicht, da die variable, in die er den code hätte auslesen sollen leer ist. in der scite-console sieht das dann so aus:

    Code
    __FFSend: try{window.content.top.document.body.innerHTML;}catch(e){'_FFCmd_Err';};
    __FFRecv: 
    __FFSend: repl.quit()

    normal kommt nach dem "__FFRecv:" ja der code.

    manchmal aber steht folgendes in der variable, was vllt einen hinweis geben könnte woran es liegt:

    Code
    name: NS_ERROR_NOT_AVAILABLE
    QueryInterface:
    function QueryInterface() {
    [native code]
    }
    message: Component is not available
    result: 2147746065
    filename: chrome://mozrepl/content/repl.js
    lineNumber: 173
    columnNumber: 0
    location: JS frame :: chrome://mozrepl/content/repl.js :: represent :: line 173
    inner: null
    data: null
    initialize:
    function initialize() {
    [native code]
    }
    Alles anzeigen
  • controlsend und win7

    • diepfeile
    • 5. März 2010 um 18:57

    jetzt bin ich auf win7 umgestiegen, nur komischerweise lassen sich die fenster nicht mehr durch controlsend ansprechen. muss man das unter win7 anders machen oder was ist da los?

    einfach per titel geht nicht

    Code
    $windowtitle = "Unbenannt - Editor"
    ControlSend($windowtitle,"","","blup")

    und per handle auch nicht

    Code
    $windowtitle = "Unbenannt - Editor"
    $handle = String(WinGetHandle($windowtitle))
    ControlSend(HWnd($handle),"","","blup")
  • ff.au3 broken?

    • diepfeile
    • 5. März 2010 um 01:28

    ist das snipplet zz kaputt oder warum bekomm ich fehlermeldungen bei den einfachsten funktionen?
    hab ff3.6, autoit v3.3.4.0, mozrepl 1.0.0.2009122217, ff.au3 0.6.0.1b-3

    das ist die fehlermeldung vom tabadd, urlopen macht ähnliche probleme

    Code
    _FFConnect: OS:	WIN_7 WIN32_NT 7600 
    _FFConnect: AutoIt:	3.3.4.0
    _FFConnect: FF.au3:	0.6.0.1b-3
    _FFConnect: IP:	127.0.0.1
    _FFConnect: Port:	4242
    _FFConnect: Delay: 	2ms
    _FFConnect: Socket: 	552
    _FFConnect: Browser:	Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6
    __FFSendJavaScripts: Sending functions to FireFox .
    __FFWaitForRepl ==> MozRepl Exception: !!! [Exception... "Component is not available"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"
    ......... done
    __FFSend: try{gBrowser.selectedTab = gBrowser.addTab('http://www.google.com/')}catch(e){'_FFCmd_Err';};
    __FFRecv: [object XULElement] — {linkedBrowser: {…}, _tPos: 22, __treestyletab__linkedTabBrowser: {…}, __treestyletab__updateTabCollapsedTask: function() {…}, __SS_extdata: {…}, mOverCloseButton: false, mCorrespondingMenuitem: null, ...}
    _FFLoadWait: ... loaded in 608ms
    Alles anzeigen

    ka was man bei dem wenigen code falsch machen könnte

    Code
    #Include <FF.au3>
    If Not _FFConnect("127.0.0.1",4242,3000) Then
    	MsgBox(64,"Fail","Can't connect to FireFox!")
    	Exit
    EndIf
    _FFTabAdd("http://www.google.com/")
  • regexp oder

    • diepfeile
    • 19. Mai 2009 um 02:12

    bugfix scheints verstanden zuhaben, ajf kommt das raus was soll, danke.
    wenn du(Xenobiologist) bugfix' code ausführst, wirst du sehen was ich als ergebnis wollte.

  • regexp oder

    • diepfeile
    • 18. Mai 2009 um 15:39
    Zitat von funkey
    Spoiler anzeigen
    [autoit]

    $string = "blah n/a blup" ; "n/a" üöäß ;)
    $string = "blah wert:1234 blup" ; "1234"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    MsgBox(0,"", StringReplace(StringRegExpReplace(StringReplace($string, ' n/a ', '0000'), '\D', ''), '0000', 'n/a'))

    [/autoit]

    die ist auch nicht übertragbar auf mein problem. also formulier ich es mal um, atm sieht es bei mir so aus:

    [autoit]


    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    ;$var = " gustav n/a 34765m 56s" ; fall1
    $var = " gustav wert:1234 15m 7s" ; fall2

    [/autoit][autoit][/autoit][autoit]

    $data = StringRegExp($var,"\s+([[:alnum:]]{3,10})\s+(?:(n/a)|wert:(\d+))\s+(\d+)m\s+(\d+)s",1)
    _ArrayDisplay($data,"asd")

    [/autoit]


    die 4stellen die ausgelesen werden sollen werden richtig ausgelesen, er packt auch den leeren wert vom nicht erfüllten "oder" in das ausgabe-array. bei "n/a" ist $data[2] leer und bei "wert:1234" ist es $data[1]. ich möchte dass er diese wenn sie leer sind gar nicht erst ins array packt, sprich $data[0] ist immer der name, $data[1] immer der wert welcher eine zahl oder "n/a" sein kann, $data[3] sind die minuten und $data[4] die sekunden. gibt es ein entweder-oder in regexp?! das könnte vllt die lösung sein

  • regexp oder

    • diepfeile
    • 12. Mai 2009 um 17:23

    ich versteh glaub ich nicht was du willst. hab ich das nicht schon in https://autoit.de/index.php?page…93778#post93778 beantwortet?

    erster fall
    "blah n/a blup" = "n/a"
    zweiter fall
    "blah wert:1234 blup" = "1234"

    so?

  • regexp oder

    • diepfeile
    • 12. Mai 2009 um 17:09

    jein. dein bsp funzt und gibt auch das richtige aus, nur ist das für mich nicht übertragbar, da ich auch noch andere sachen abfrage und daher das "oder" in klammern setzen muss, was bei dir nichtmehr der fall ist.

    Zitat von diepfeile

    wenn man mehr als nur nach dem "oder" checken will muss man es in klammern setzen zb : "\b(n/a|wert:\d+)\b"

  • regexp oder

    • diepfeile
    • 12. Mai 2009 um 16:51
    Zitat von Xenobiologist

    Was soll denn genau in den beiden Fällen gefunden werden?


    fall 1 finden:

    Code
    " n\a "

    ausgeben:

    Code
    "n/a"


    fall 2 finden:

    Code
    " wert:\d+ "

    ausgeben:

    Code
    "\d+"
  • regexp oder

    • diepfeile
    • 12. Mai 2009 um 16:43

    ich hab da ein bissl probleme mit dem "oder" aka "|" in StringRegExp(...,...,1)

    wenn man mehr als nur nach dem "oder" checken will muss man es in klammern setzen zb : "\b(n/a|wert:\d+)\b"
    durch die umklammerung wird es aber auch im ausgabearray ausgegeben, was man wie folgt unterdrückt: "(?: ......)"

    nur möchte ich schon eine ausgabe, nur halt nicht die des ganzen strings. das problem daran ist dass er beide seiten vom "oder" ausgibt, obwohl ja nur immer eine erfüllt ist. dadurch entsteht immer ein leerer platz im ausgabearray:

    [autoit]


    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    ;$var = "blah n/a blup"
    $var = "blah wert:1234 blup"

    [/autoit][autoit][/autoit][autoit]

    $data = StringRegExp($var,"\b(?:(n/a)|wert:(\d+))\b",1)
    _ArrayDisplay($data,"asd")

    [/autoit]


    wie mache ich es nun dass er nur ausgibt was er auch gefunden hat?

  • datenauslesemöglichkeiten

    • diepfeile
    • 8. Mai 2009 um 18:19

    gut wenns geht - damit kann man leicht viel auslesen, nur ist es oft leer. ka ob es generell nicht geht oder ich es probier falsch auszulesen.

    aufwendig und nicht übertragbar - da muss man aufwenig die koordinaten raussuchen, die pixelchecksum machen und ins script kopieren und nicht übertragbbar ist ne sache der bildschirm auflösung bzw wo sich das fenster befindet, wie groß es ist etc..

    umständlich und fehleranfällig - es kommt oft vor dass er es nicht richtig markiert, das hab ich durch ne regex abfrage mit while kompensiert. nach so 3versuchen klappts dann meist. nur frisst das markieren gut zeit und mit wiederholengen erst recht.

  • regex mehrfach finden

    • diepfeile
    • 8. Mai 2009 um 15:58
    [autoit]


    $ar = StringRegExp($var,"(blup>(\d+?)<blah)+",1)

    [/autoit]


    sollte es nicht so auch gehen, oder hab ich da was falsch verstanden?

    Zitat

    ( ... ) Gruppe. Die Elemente in der Gruppe werden in Reihenfolge bearbeitet und können zusammen wiederholt werden. Z.B. (ab)+ entspricht "ab" oder "abab", aber nicht "aba". Eine Gruppe speichert auch den Text ab, der mit dem Set übereinstimmt, um ihn bei einem Rückverweis und in dem Rückgabearray der Funktion zu benutzen, abhängig von dem Flag-Parameter.

  • regex mehrfach finden

    • diepfeile
    • 8. Mai 2009 um 03:38

    ich möchte das er alle vorkommen der regexabfrage ins array packt, leider packt er nur das erste. weiss wer rat?

    Code
    $ar = StringRegExp($var,"blup>(\d+?)<blah",1)
  • datenauslesemöglichkeiten

    • diepfeile
    • 7. Mai 2009 um 19:39

    ich wollte fragen welche möglichkeiten man mit autoit alles hat um daten aus programmen auszulesen. zz sind mir folgende bekannt:
    ControlGetText - gut wenns geht
    WinGetText - gut wenns geht
    PixelChecksum - aufwendig und nicht übertragbar
    markieren kopieren und clipboard auslesen - umständlich und fehleranfällig

  • regex und zeilenumbrüche

    • diepfeile
    • 7. Mai 2009 um 06:10

    mit der oberen $var gehts, aber nicht mit der unteren. wie bekomme ich es hin, dass regex über die zeilenumbrüche hinaus sucht?

    Code
    $var = "textanfang basd asdasd textende"
    $var = "textanfang basd" & @CRLF & "asdasd textende"
    If StringRegExp($var,"^textanfang.*?textende$") Then
    	MsgBox(0,"regex","geht")
    EndIf
    Sleep(2000)
  • isarray() funktioniert nicht?!

    • diepfeile
    • 30. April 2009 um 16:21

    die idee geht zwar in die richtige richtung, nur da beide sachen in funktionen mehrfach aufgerufen werden bringt sie nichts. aber ich bin dadurch drauf gekommen wodran genau es liegt und wie ichs lös: wenn in $table keine datei geladen werden konnte, wird es zu einem leeren array, somit ist isarray() zwar true aber da keine werte drin sind führt es dann an anderer stelle zu dem besagten fehler. dieses problem umging ich dann so:

    Code
    Global $table = ""

    (tjo nur 3zeichen haben gefehlt *G) wenn _FileReadToArray() was ausliest wird $table zum array, wenn nicht bleibt es eine leere variable.

  • isarray() funktioniert nicht?!

    • diepfeile
    • 30. April 2009 um 00:39

    $table ist eine tabelle in form von arrays im array wie deine nur größer:

    Code
    Dim $array1[3] = ["1","2","3",....]
    Dim $array2[2] = ["1","2",....]
    Dim $array3....
    ......
    Dim $table[n] = [$array1,$array2,...]


    sie wird aus einer datei ausgelesen:

    Code
    Global $table ; creates array variable
    _FileReadToArray("db.cvs", $table)
    If IsArray($table) Then
    	For $i = 1 To $table[0]
    		$table[$i] = StringSplit($table[$i], ";")
    	Next
    EndIf


    im array $xyid sind die koordinaten(für das "tabellenfeld".) drin, die ich in der "tabelle" $table auslesen möchte. $xyid[0] -> x-ache/spalte ; $xyid[1] -> y-ache/zeile ;
    das auslesen funtzt alles np, sowohl bei mir als auch bei deinem bsp-script.

    nur kann es bei mir auch vorkommen, dass $table nicht geladen wurde, wovor die if-abfrage schützen soll. nur tut sie das irgendwarum nicht, weil ich in der if-abfrage den "kein array"-error bekomm: "Subscript used with non-Array variable", aber dann konnt die ifabfrage doch gar nicht true sein.

  • isarray() funktioniert nicht?!

    • diepfeile
    • 29. April 2009 um 23:31

    $table ist eine array im array variable. und mit hilfe von xyid soll er eine bestimmte stelle in $var übergeben. das funzt auch normal, nur manchmal ist $table kein array(was korrekter weise vorkomemn kann) aber obwohl der code in einer ifschleife mit isarray()-abfrage drin ist wird er ausgeführt und endet dann nat mit "Subscript used with non-Array variable" für $var1 in der zeile mit "<--". egal mit welcher der beiden ifabfragen. aber dies sollte ja gar nicht sein weil es doch laut isarray() ein array ist. also was mach ich da falsch?

    Code
    ;If IsArray($table) Then
    	If IsArray($table[1]) Then
    		$var1 = $table[$xyid[1]]
    		$var = $var1[$xyid[0]]  ; <--

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™