Ich finde den Fehler einfach nicht :-(

  • Hallo zusammen,

    Ich hoffe einer von euch kann mir helfen. Ich lese mit folgenden Code eine bestimmte Zeile aus einem Quellcode aus und schreibe das wenn Erfolg in eine Excel Sheet.

    [autoit]

    $String = FileRead("c:\temp\1.htm")

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

    $Result = StringRegExp($String, '(?s)(?:<td align="right" height="20" width="150">.*?<td align="right"><p><b>.*?</b></p></td>.*?<td width="5">.*?</td>.*?<td align="left">.*?<p >)(.*?)(?:</p></td>.*?</tr>.*?<tr valign="top">)', 3)
    For $i = 0 To UBound($Result) - 1
    If Not StringInStr($Result[$i], "<") And Not StringInStr($Result[$i], ">") Then
    _ExcelWriteCell($eExcel, $Result[$i], $a,8)
    EndIf
    Next

    [/autoit]

    Der Code funktioniert nur liest er das nicht immer aus obwohl der Quellcode gleich aufgebaut ist in dem Bereich wo er das auslesen soll.

    Hat einer von euch ne Idee warum er den zweiten nicht ins Sheet schreibt?


    Danke und Gruß
    Norman

    Einmal editiert, zuletzt von Norman Bates (29. Juni 2012 um 13:49)

    • Offizieller Beitrag

    Hey Norman,

    Versuche nächstes mal bitte ein besseren Titel für dein Anliegen zu finden "Ich finde den Fehler einfach nicht" - da fühlt sich keiner Angesprochen und somit gehen sowelche Beiträge in meiner Erfahrung unter. Passen währe hier sowas wie "StringRegExp liest nicht immer aus" oder "Regular Expression parst nicht immer richtig" ;)

    Probiere es mal hiermit:

    [autoit]

    $Result = StringRegExp($String, '<p >(.*?)</p></td>', 3)

    [/autoit]

    Wenn das auch nicht geht, könnte es sein, dass FileRead mal Binär ausließt, mal nicht. Das kannst du leicht überprüfen in dem du das unter FileRead setzt:

    [autoit]

    $String = FileRead("c:\temp\1.htm")
    $String = BinaryToString($String)

    [/autoit]

    Gruß
    Spider

  • @xor: interessantes Urteil, hat aber keine negativen Auswirkungen auf das Thema, da:

    • nur ein Einzelfall entschieden wurde
    • der BGH das Auslesen (trotz anderslautender AGB)für zulässig befindet:
      Zitat

      Eine Rolle spielte bei der Entscheidung des Bundesgerichtshofs, dass der klagende Betreiber der Onlinebörse seine Datenbank im Prinzip ungeschützt frei zugänglich gemacht hatte. Er hatte zwar in seinen Allgemeinen Geschäftsbedingungen vorgesehen, dass eine Abfrage der Angebote aus der Datenbank nur auf dem eigentlich dafür vorgesehenen Wege, nämlich über das Portal und die Suchmaske dort und von Hand erfolgen dürfe, und Dritten ein automatisches Auslesen oder die Verwendung für eigenständige kommerzielle Angebote nicht erlaubt sei. Allerdings waren technisch keine besonderen Vorkehrungen dagegen getroffen, und insbesondere war es möglich, Datenbankabfragen zu machen, ohne die AGB ausdrücklich anzunehmen. Damit war die betreffende Klausel aus den AGB des Portalbetreibers hier ohne Wirkung.

    mfg autoBert