Stringbetween ist leer

  • ich will aus heier hosts datei eine squid kompatible liste machen.
    file einlesen geht und zeilen lesen geht auch.

    wenn ich nun aber das sehen will was zwischen ## und ] steht, wird mir nur 0 für nicht vorhanden und nichts für das ist doch irgendwas angezeigt.
    wo ist mein fehler?

    [autoit]


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

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

    Local $avArray[1]
    Local $stringleft = '##'
    Local $stringright = ']'

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

    Local $file = FileOpenDialog ( "", @HomeDrive, "acl datei(*.acl)" , 1)

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

    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")

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

    Else
    $zeilen = _FileCountLines($file)
    MsgBox(0, "Zeilen", $zeilen)
    For $i = 1 To $zeilen
    $zeile = FileReadLine($file,$i)
    MsgBox(0,"zeile",$zeile)
    $string = _StringBetween($zeile, $stringleft, $stringright)
    MsgBox(0,"string",$string)
    Local $stringclean = StringReplace($zeile, $string, "")

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

    If $stringclean <> 0 Then
    _ArrayAdd($avArray,$stringclean)
    EndIf

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

    Next

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

    EndIf

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

    _ArrayDisplay($avArray)
    FileClose($file)
    MsgBox(0, "", "tschuess")

    [/autoit]

    I spent 10 minutes reviewing code and thinking "What kind of drugs is this guy on?" before realizing it was something I wrote.

    Einmal editiert, zuletzt von Maximus1 (15. Mai 2013 um 14:20)

  • Hi,

    wie sieht der Inhalt deiner *.acl-Datei aus?

    Gruß
    x0r

    Code
    c03.adsummos.net
    e35fbf.t.axf8.net
    ma156-r.analytics.edgesuite.net ##[AkamaiPlayerAnalytics]
    kona.kontera.com ##[DynamiContext AdLinks][MVPS.Criteria]

    so, nur mit einigen hundert adressen.

    I spent 10 minutes reviewing code and thinking "What kind of drugs is this guy on?" before realizing it was something I wrote.

  • _StringBetween gibt ein Array zurück.
    In den Zeilen 22 & 23 brauchst du also $string[0].


    ...da hat er Recht, wenn du statt $string einfach $string[0] verwendest, müsst es klappen :)

    Du kannst testhalber in Zeile 22 auch statt:

    [autoit]

    MsgBox(0,"string",$string)

    [/autoit]

    das hier einfügen:

    [autoit]

    _ArrayDisplay($string)

    [/autoit]

    Das sollte dir Antwort genug sein :thumbup:

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.