inputbox und Dateistring vergleichen

  • Hallo Leute,

    ich brauche mal wieder eure Hilfe. Ich möchte den Inhalt einer inputbox mit dem gesamten Inhalt einer Datei vergleichen. Die gesamte Zeile muss stimmen.
    Desweiteren soll möglich sein statt der inputbox eine zweite Datei einlesen zu lassen. ?(

    Vielen Dank.
    Gremlin78

    Einmal editiert, zuletzt von Gremlin78 (17. Mai 2013 um 19:38)

  • >> AutoIt.de - Das deutsche AutoIt-Forum » AutoIt 3 » Hilfe & Unterstützung <<

    Du bist hier in H&U...
    Vielleicht wäre es ganz sinnvoll selber mal das aufzuschreiben, was du dir schon selber erarbeitet hast.

    Beispielsweise:
    -> Ein Pseudocode
    -> Ein Skript wo du es selber versuchst
    -> Deine Gedanken

    Ich möchte dich hier nur einmal darauf hinweisen, dass das so rüber kommt als ob wir für dich deine Arbeit machen sollen. Zumindestens geht das mir so...
    Wenn du keine Gedankenansätze hast, dann schreib das bitte dazu!
    Ich will dir nicht zu nahe treten, aber es war auch schon so bei deinen 2 letzten (und einzigsten) Threads hier.


    Nun zu dein Problem:
    Du schreibst es ja schon quasi nieder...
    Du brauchst eine Funktion welche Zeilenweise deine Textfiles einliest und dann vergleicht.

    Spoiler anzeigen
    [autoit]

    FileReadLine()
    _FileCountLines() ; Für FileReadLine()
    _FileReadToArray()

    [/autoit]

    Ich würde dir _FileReadToArray() empfehlen, weil du dann einfach in einer For Schleife das Array durchgehen und vergleichen kannst. Wenn du auf Groß und Kleinschreibung achten willst, verwende für den Vergleich 2 Gleichheitszeichen: "a" == "A"

    Damit solltest du es selber hin bekommen. Sollten weitere Fragen oder Probleme aufkommen, bin ich gerne bereit dir zu helfen! :D
    Aber ich möchte vor allem auch sehen, dass du es zumindest selber versuchst. Warum soll denn was machen wenn du selber nichts machst?
    (Soll keine Unterstellung sein! Habe es nur so formuliert dass du siehst was ich meine :P)

  • Sorry, wenn du das dachtest:

    mein Ansatz war so etwa:


    FileDelete("check.txt")
    FileWrite("check.txt","Zeile 1"&@CRLF&"Zeile 2"&@CRLF&"Zeile 3"&@CRLF&"Zeile 4")
    $Dateipfad = FileOpen("check.txt")
    $Suchstring = "Zeile 3"
    $Dateitext = FileRead($Dateipfad)
    If StringRegExp($Dateitext, $Suchstring) = 1 Then
    MsgBox(0,"", "String vorhanden!")
    Else
    MsgBox(0,"","Nö")
    EndIf
    FileClose($Dateipfad)

    Allerdings reicht es bei dieser Version schon irgendwas aus der Datei zu suchen.

    Gruß Gremlin78

    • Offizieller Beitrag

    Der Ansatz ist doch schon ganz gut. Etwas erweitert und es klappt:

    Spoiler anzeigen
    [autoit]


    FileDelete("check.txt")
    FileWrite("check.txt", "Zeile 1" & @CRLF & "Zeile 2" & @CRLF & "Zeile 3" & @CRLF & "Zeile 4")
    $Suchstring = "Zeile 2"
    $Dateitext = FileRead('check.txt')
    If StringRegExp($Dateitext, '.*(?:\A|\r\n)(' & $Suchstring & ')(?:\z|\r\n).*') Then
    MsgBox(0, "", "String vorhanden!")
    Else
    MsgBox(0, "", "Nö")
    EndIf

    [/autoit]