_StringBetween in eine Func

  • Hallo^^,

    ich bastel grade an einer UDF die html strings auslesen soll ;) nur leider ergeben sich damit ein paar probleme *gg*

    HTML UDF (Anfänge xD)
    [autoit]


    #include<string.au3>

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

    Func _HTML_Start($filedir)
    $hFile = FileOpen($filedir, 0)
    Global $sFile = FileRead($hFile)
    FileClose($hFile)
    EndFunc

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

    Func _HTML_Title()
    _StringBetween($sFile, "<title>", "</title>")
    EndFunc

    [/autoit]
    Example
    [autoit]


    _HTML_Start(@SCriptDir & "/Test.html")
    $rTitle = _HTML_Title()

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

    MsgBox(0,$rTitle,"Der Titel wird durch HTML bestimmt")

    [/autoit]


    Hoffe jemand weiß weiter :3

    Lg

    Kasoki

    2 Mal editiert, zuletzt von Kasoki (22. April 2009 um 16:39)

  • so habe das Global mal zu Local geändert und unter das StringBetween ein return(0) eingebaut ^^ aber nun ergibt sich das problem das die variable aus _HTML_Start nichtmehr in _HTML_Title funktioniert :)

  • ok es klappt schonmal in etwa ;) jedoch wird es nurnoch als 0 ausgelesen *gg* statt TEST :) ohne die func ging es als ich an das $rTitle ne [0] setze xDD jedenfalls ergibt das nun einen error warscheinlich hab ich ja was mit dem return falsch gemacht ;) hab ja einfach nur "return 0" geschrieben.

  • Du musst dann Return mit der Variable die aus Stringbetween zurückgegeben wird.

    Beispiel:

    [autoit]

    Return $Beispiel

    [/autoit]

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • Hi!

    Hier mein Beispiel für deine UDF.

    [autoit]


    $htmlstart = _HTML_Start(@SCriptDir & "\index.htm")
    If @error Then Exit
    $rTitle = _HTML_Title($htmlstart)
    If @error Then Exit
    MsgBox(0,$rTitle[0],"Der Titel wird durch HTML bestimmt")

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

    ;ab hier beginnt die "UDF" ----------------------------------------------
    #include<string.au3>

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

    Func _HTML_Start($filedir)
    Local $hFile = FileOpen($filedir, 0)
    If $hFile = -1 Then
    FileClose($hFile)
    Return SetError(1,0,0)
    EndIf
    Return FileRead($hFile)
    FileClose($hFile)
    EndFunc

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

    Func _HTML_Title($sFile)
    Local $stringbetween = _StringBetween($sFile, '<title>', '</title>')
    If @error Then Return SetError(1,0,0)
    Return $stringbetween
    EndFunc

    [/autoit]

    If not :?: then ?( else :thumbup:

    Einmal editiert, zuletzt von Concara (22. April 2009 um 16:43)

  • erstmal hi kasoki....(ich bins von ingamers)

    [autoit]

    #include<string.au3>

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

    Func _HTML_Start($filedir)
    local $hFile = FileOpen($filedir, 0)
    local $sFile = FileRead($hFile)
    FileClose($hFile)
    return $hFile
    EndFunc

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

    Func _HTML_Title($sFile)
    return _StringBetween($sFile, "<title>", "</title>")
    EndFunc

    [/autoit]


    /edit schon wieder einer schneller aberconans func ist besser weil er noch error funktionen hat,,,,
    naja ich hab dieses einfach nur hingeklatscht

  • danke an euch ^^ es funzt ;) dann mach ich ma weiter damit *gg* das wird viel arbeit jeden html befehl zu bestimmen xDD

  • Concara:
    Das:

    [autoit]

    Func _HTML_Start($filedir)
    Local $hFile = FileOpen($filedir, 0)
    If $hFile = -1 Then Return SetError(1,0,0)
    Return FileRead($hFile)
    FileClose($hFile);never
    EndFunc

    [/autoit]


    ist Quatsch, denn return beendet die Funktion. besser:

    [autoit]

    Func _HTML_Start($filedir)
    Local $hFile = FileOpen($filedir, 0)
    If $hFile = -1 Then Return SetError(1,0,0)
    Local $Return= FileRead($hFile)
    FileClose($hFile)
    Return $Return
    EndFunc

    [/autoit]

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.