_Word_DocRangeSet

  • Moinsen,

    habe mich in den letzten Tagen ein bisschen in AutoIt eingearbeitet und habe meine ersten kleinen Scripts geschrieben. Dabei lese ich Daten von einer Website aus und kopiere Sie in eine Excel Tabelle.
    Bin jetzt geradean einer neuen Variante und habe Probleme mit der Funktion_Word_DocRangeSet.
    Ich versuche gerade aus einem Quellcode einer Website (als word Dokument) zehn AppIds auszulesen.
    Diese kommen im letzten Teil des Dokuments (nach dem letzten "relatedapps" suchbegriff):

    AutoIt
    ;Nach dem Bereich related apps suchen
    Local $relatedAppssuche	= _Word_DocFind($oDoc, "relatedapps", 0, Default, False)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Example", _
            "relatedapps locating the specified text in the document." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    $relatedAppssuche.bold=True
    ;Suchbereich festlegen
    Local $oSearchRange = _Word_DocRangeSet($oDoc,$relatedAppssuche,-1,50000) ;durchsuche nur den rest des dokuments


    Danach möchte ich nur noch den rest des Dokuments durchsuchen und die zehn appids speichern. Ich bekomme es aber irgendiwe nur hin, das die nächste (also zweite) gefunden wird. Nicht aber die dritte, vierte usw...

    Ich versuche hier die SearchRange weiter nach hinten zu schieben. Ich habe da auch schon verschiedene Ansätze versucht aber es wird immer nur die zweite appid gefunden...
    Kann mir da jemand helfen? Check irgendwie diese word_docrangeset funktion nicht so ganz.

  • Also wenn Du eine Webseite durchsuchen möchtest um Daten zu extrahieren, dann ist Word sicher die ungeeignetste Lösung. Schau Dir lieber die IE UDF die mit AutoIt mitgeliefert wird an. Da kannst Du auf die einzelnen Elemente der Webseite direkt zugreifen.

  • Das war mein erster ansatz. Leider sind die Sachen die ich brauche im javascript teil und über ie udf komm ich da nicht vernünftig ran. Sprich ich bekomm die appids nicht zu packen.

  • Habs nochmal per IE.au3 versucht.
    Bekomme aber keine Ergebnisse.

    Ich geh halt den kompletten Pfad runter damit ich auf jeden fall das richtige erwische. Als Ergebnis habe ich aber immer 0.
    Jemand nen Plan was ich falsch mache?

  • In dem Skript fehlt jede Fehler-Prüfung. Irgendeiner der IE-Befehle wird vermutlich einen Fehler melden. Was sagt die SciTE Konsole?

  • Hey Kanashius,
    super vielen Dank für die Tips. Hab mich da nochmal eingelesen und es so gelöst... Auf jeden fall viel einfacher.

    Jetzt bekomme ich im Array alle 10 IDs.

    Ich brauch diese 10 IDs aber nicht nur für eine App sondern für mehrere hunderte.

    Jetzt muss ich also im Schritt davor die ID der betrachteten App ins Suchfeld eingeben und diese per click auswählen. Grundsätzlich mache ich das über _IEGetObjByName & _IEAction oder?

  • Moin.

    Dann zeig doch mal ein "Grundsätzlich", sprich, wie Du es grundsätzlich machst. Vielleicht hilft das ja Dir zu helfen.
    Da Du es ja wahrscheinlich "Grundsätzlich" bereits regelmäßig machst, sollten wir schauen wo das Problem im Detai steckt.

    Was macht man dann mit den vorhandenen zehn Arraywerten, die man ja, wie Du schreibst, bereits ausgegeben bekommt und die man weiter benötigt?
    Also DU köööööönntest diese z. B. in eine temporären extdatei speichern und wenn Du diese nicht mehr benötigst, diese dann löschen.

    Zu kompliziert erklärt? Sorry, aber ich habe nur niedergeschrieben, was in meinem Kopf dazu vor geht. ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Moin,

    also mit grundsätzlich meine ich ob das grundsätzlich so funktionieren könnte. :D Habe das nämlich schon auspropiert aber irgendwie bekomme ich damit kein Object zu fassen bzw. geclickt z.B. sowas:(Versuch den Twitterbutton zu klicken)

    AutoIt
    $oAdress = "https://sensortower.com/ios/us/supercell/app/clash-of-clans/529479190"
    
    
    $oIE = _IECreate($oAdress)
    
    
    $oDiv = _IEGetObjByName($oIE,"app-view-tweet")
    
    
    _IEAction($oDiv,"click")

    Habe das Gefühl das dies am Aufbau der Seite liegt... Bin aber nicht ganz sicher. Aktuell löse ich das über Maussteuerung, aber das ist ja mist...

    Ziel ist das Suchfeld auf "https://sensortower.com/ios/us/supercell/app/clash-of-clans/529479190" aus dem Clipboard zu füllen und aus dem dann aufklappenden dropdown menü die erste App auszuwählen.

    Die Arraywerte kommen später in eine Excel Tabelle. Das wollte ich dann über _Excel_RangeCopyPaste lösen

    Thx :)