Jump to content

Recommended Posts

Hi all Im still New To Autoit and would realy like some help ...

I have gone through some examples and other code on the forum but now I am stuck :(

see comments on what I want to do .

#RequireAdmin
#include <IE.au3>
#include <MsgBoxConstants.au3>
#include <File.au3>
#include <String.au3>
#include <Array.au3>

Global $oIE = _IECreate("https://www.harryhomers.org/et/forum/viewtopic.php?f=89&t=4309", 0, 0, 1, 0)
Global $oElements = _IETagNameAllGetCollection($oIE)
Global $oID = _IEGetObjById($oIE, "p41827")
Global $ListArray[1]

#cs
; the list I want to get is 1 - 20 max 30 and there names . The DIV ID is p41827

<div class="content">HarryHomers can be found at 85.236.100.205:<span style="font-weight: bold">27960</span><br /><br /><ul>HH Bot Multi campaign **<br /><br />1. NAME 1<br />2. NAME 2<br />3. NAME 3<br />4. NAME 4<br />
5. NAME 5<br />6. NAME 6<br />7. NAME 7<br />8. NAME 8<br />9. NAME 9<br />10. NAME 10<br />11. NAME 11<br />12. NAME 12<br />13. NAME 13<br />14. NAME 14<br />
15. NAME 15<br />16. NAME 16<br />17. NAME 17<br />18. NAME 18<br />19. NAME 19<br />20. NAME 20<br />

</ul>

#ce

For $oElement in $oElements
    Local $_sSourceTAG = $oElement.tagname
    Local $_sSourceTEXT = $oElement.innerText
    Local $_sSourceID = $oElement.id
    Local $_sSourceHTML = $oElement.innerhtml

    If $_sSourceID = "p41827" Then

;Test message box
                MsgBox($MB_SYSTEMMODAL, "MY TAG ID", "Innertext: "  & $_sSourceTAG & @CRLF & "id: " & $_sSourceID & @CRLF & "innerText: " & $_sSourceTEXT)
                MsgBox($MB_SYSTEMMODAL, "MY HTML", "Innerhtml: "  & "id: " & $_sSourceID & $_sSourceHTML)

        $oData = _IEPropertyGet($oIE, "strong")
        $Check = StringRight($oData, 11)

        If $Check = "ohnDory</A>" Then
;Test message box
            MsgBox($MB_SYSTEMMODAL, "SEARCH FOUND", "The characters are: " & $Check )
            $ArraySplit1 = StringSplit($oData, ".")
            For $ArrayItem in $ArraySplit1
                $ArrayItem = StringSplit($ArrayItem, "<BR>", 1)
                If $ArrayItem[0] > 1 Then
                    If $ArrayItem[2] > 0 Then
                        $ArrayItem[1] = StringStripWS($ArrayItem[1], 3)
                        _ArrayAdd($ListArray, $ArrayItem[1])
                    EndIf
                EndIf
                If StringInStr($ArrayItem[1], "</UL>") Then
                    $POS = StringInStr($ArrayItem[1], "</UL>") - 1
                    $String = StringLeft($ArrayItem[1], $POS)
                    $String = StringStripWS($String, 3)
                    _ArrayAdd($ListArray, $String)
                EndIf
            Next
        Else
; Not correct so ignore
        MsgBox($MB_SYSTEMMODAL, "NOT FOUND", "The characters are: " & $Check )
        EndIf
    EndIf
    Next

    _ArrayDisplay($ListArray)
    _ArrayReverse($ListArray)
    _ArrayPop($ListArray)
    _ArrayReverse($ListArray)
    _ArrayDisplay($ListArray, "Map List Array Final View")

    sleep(2500)
_IEQuit($oIE)


#cs
; note the html (map names) does change once a month
; save txt file
#ce
;_FileWriteLog(@TempDir & "\list.txt", $ListArray)
Edited by Tardis
Link to post
Share on other sites
  • Solution

Well, there are a lot of ways to do this but here is two ways:

#include <IE.au3>
#include <Array.au3>
#include <String.au3>

$oIE = _IECreate("https://www.harryhomers.org/et/forum/viewtopic.php?f=89&t=4309")
$sHTML = _IEBodyReadHTML($oIE)

Dim $ListArray[1]

For $i = 1 To 20
    $aNames = _StringBetween($sHTML, ">" & $i & ". ", "<")
    If IsArray($aNames) Then _ArrayAdd($ListArray, $aNames[0])
Next

_ArrayDisplay($ListArray)
_IEQuit($oIE)

;or you can do this

$dHTML = InetRead(("https://www.harryhomers.org/et/forum/viewtopic.php?f=89&t=4309"))
$sHTML = BinaryToString($dHTML)

Dim $ListArray[1]

For $i = 1 To 20
    $aNames = _StringBetween($sHTML, ">" & $i & ". ", "<")
    If IsArray($aNames) Then _ArrayAdd($ListArray, $aNames[0])
Next

_ArrayDisplay($ListArray)
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By RAMzor
      Hi everyone,
      I have this string:
      "main_lot      0x111” & @CRLF & “main_version          0xABC” & @CRLF & “main_number 0xDEAD123” & @CRLF & “main_version          0x333"
      And I'm trying to extract one specific hexadecimal number, actually main_version from this string by using StringRegExp:
      How to get 'ABC' from it?
      I'm not sure if the original string uses @CRLF, @CR or @LF as a line breaks (received from linux over ssh plink.exe) I have tried this code but it doesn't work 
      #include <Array.au3> $sLog = "main_lot 0x111” & @CRLF & “main_version 0xABC” & @CRLF & “main_number 0xDEAD123” & @CRLF & “main_version 0x333" $aVer = StringRegExp($sLog, "main_version\h*(.+)(?:0[xX][[:xdigit:]])", 3) _ArrayDisplay($aVer)  
       
    • By TheAlienDoctor
      Hi, I was looking into creating a script that would detect if a file exists, then move it (and in some cases rename it, depending on the file) as well as write to a log file.
      The issue is, there is a lot of files that need to be moved, sometimes some files will exist and others won't depending on the use-case. However if a file does exist, it will always be going into the same directory with the same name.
      Currently I have an array nested inside of the array, with each array inside that array having both the old and new directory, and then a For loop to actually run through and do the file transferring. The issue I am having is how to call the Array inside of the array, because how do I specify  which the old directory is and which the new is?
      Global $FileTransfer[2000] = [Global $Dir1[2] = ["original dir 1", "new dir 1"], Global $Dir2[2] = ["original dir 2", "new dir 2"]] For $FileTransfer = [0] To [1] Step +1 If FileExists({original dir}) Then FileMove({original dir}, new dir, 1) FileOpen("log.latest.txt", 1) FileWrite("log.latest.txt", "{original dir} found, moved it to new dir." & @CRLF) FileClose("log.latest.txt") Else FileOpen("log_latest.txt", 1) FileWrite("log_latest.txt", "{original dir} not found, ignoreing it." & @CRLF) FileClose("log_latest.txt") EndIf Next I have put what I want the old and new directory to be for each array in {}, so hopefully its easier to tell which part is working and whats not.

      I am still reasonably new to AutoIT, any help is appreciated. Thankyou
    • By arunkw
      I have a spreadsheet - daily routine which has two columns: activity and time as shown here
      | Activity             | Time     | |----------------------|----------| | Sleep               |  6:00 am | | Toilet              |  6:15 am | | Get ready for gym  |  6:30 am | | Exercise            |  7:50 am | | ... more things      |  9:00 pm | | ... still more       | 10:45 pm | | Sleep               |  6:00 am |   I wanted to find out, say in C1 which activity is current for me using now() I.e., if it’s 6:45am on my watch, it should show me Exercise  in C1 Thanks to Adam D. PE, this formula works like magic to get the result =VLOOKUP(MOD(NOW(),1),{B2:B,A2:A},2,1)   Now, I want to reproduce same result in autoit, how to do that? To have easy solution say, I copy-paste spreadsheet data in array directly in code, right? Use for loop and run the above vlookup function and show the answer using tooltip. How to achieve this? please help.  
    • By goku200
      I have an Autoit script that lists files from a folder into an array list. Is there a way to separate the filenames by an underscore and include the id, version, name and date into separate columns in Excel.
      Example of filename:
      12345_v1.0_TEST Name [12345]_01.01.2022.html
      12345 would be in one column
      v1.0 would be in another column
      TEST Name [12345] would be in another column
      01.01.2022 would be in another column
      .html would be in another column
      Note: filenames always change each day.
      Here is my code that lists the files into column C and then writes the column Headers into Column D, E, F, G. Just need some help with separating them into columns by the _ delimiter
       
    • By Steviep
      Hi all,
      I've been using the following code for many years for the sole purpose of tracking my app usage via Google Analytics:
      ;GOOGLE ANALYTICS $AppStatsName = @ScriptName $GA = _IECreate("https://mywebserver/apps/stats/" & $AppStatsName & ".html", 0, 0, 0, 0) The app simply calls a blank .html page on my webserver which only contains the GA tracking code.
      The $iVisible parameter is set to "0" in my case, which means the IE browser is invisible to the user.
      I noticed in Windows 11, the URL is called in the Edge browser and is not invisible.
      So, I wonder if anyone out there has any suggestions on calling a URL invisibly on any operating system?
      Thanks!
×
×
  • Create New...