autoit unlogisch??

  • hi,
    ich versuch doch einfach abzufragen ob das gesuchte wort in der .txt drin ist und dann soll eine meldung kommen...

    [autoit]

    ;in der test.txt steht "xy"

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

    $file = FileOpen("test.txt", 0)

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

    While 1
    $line = FileReadLine($file)
    If $line = "xy" Then
    MsgBox(0,"","richtig")
    Exit
    Else
    MsgBox(0, "","falsch")
    Exit
    EndIf
    Wend

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

    FileClose($file)

    [/autoit]

    bei mir kommts immer verkehrt:
    wenn der code so wie oben kommt "falsch"
    und wenn ich "=" mit "<>" ersetze kommt "richtig"

    danke für eure antworten

    Einmal editiert, zuletzt von Kurgl (23. Oktober 2006 um 20:02)

    • Offizieller Beitrag

    Hallo!

    Leider ist es oft so das nicht autoit unlogisch ist sondern wir unlogisch sind.. Sollte uns das nicht zudenken geben? Ich glaube nein... So möchte ich enden mit jenem vers 3 absatz 5: Das Wasser ist trüb, die Luft ist rein, Franz Joseph muss ertrunken sein (Zitat von Otto Waalkes )

    Also back @topic: Probiers mal so und guck was dabei rauskommt..

    [autoit]

    ;in der test.txt steht "xy"
    FileWriteLine("test.txt", "xy")
    $file = FileOpen("test.txt", 0)
    While 1
    $line = FileReadLine($file)
    If $line = "xy" Then
    MsgBox(0, "", "richtig")
    Exit
    Else
    MsgBox(0, "", "falsch")
    Exit
    EndIf
    WEnd
    FileClose($file)

    [/autoit]

    Mfg Spider

    • Offizieller Beitrag

    Hallo!

    Das ist ja klar! Ich dachte das es nur um eine bestimmte zeile geht!
    So muss es ja auch die erste zeile sein! Also in der ersten zeile muss xy stehen wenn es in der 2. stehen würde würde es z.b. nicht gehen.. Das würde widerum so gehen:

    [autoit]

    ;in der test.txt steht "xy"
    FileWriteLine("test.txt", "xy")
    $file = FileOpen("test.txt", 0)
    While 1
    $line = FileReadLine($file)
    If @error Then ExitLoop
    If $line = "xy" Then
    MsgBox(0, "", "richtig")
    Else
    MsgBox(0, "", "falsch")
    EndIf
    WEnd
    FileClose($file)

    [/autoit]

    Mfg Spider

  • nein, nein das gefällt autoit nicht wirklich ^^
    der schreib anstatt "xy" irgendwelche quadrate

    außerdem ist es über FileWriteLine nicht so pratisch, weil ich einen vorher markierten text einfügen will, um ihn zu prüfen...aber soweit brauch ich ja noch garnicht zu denken wenn nicht einmal so ne einfache prüfung klappt

    • Offizieller Beitrag

    Wer wird denn da gleich das Kind mit dem Bade ausschütten?

    Zitat

    wenn nicht einmal so ne einfache prüfung klappt


    Die Prüfung funktioniert tadellos.
    Es werden auch nicht irgendwelche Quadrate, sondern korrekt "xy" eingetragen.
    Manchmal befindet sich das Problem nicht im sondern vorm Computer ...? ;)

    Nicht aufgeben - Autoit ist schon eine tolle Sprache. Und es ist erstaunlich was man damit alles realisieren kann.

  • @Kurgl

    ... und noch ein Bespiel, wie Du siehst geht das recht einfach mit Autoit

    [autoit]


    $datei = "test.txt"
    $size = FileGetSize ( $datei )
    $file = FileRead($datei,$size)
    $pos = StringInStr($file,"xy")
    If $pos = 0 Then
    MsgBox(32,"0 Treffer","kein Treffer")
    Else
    MsgBox(32,"Treffer","Text gefunden")
    EndIf

    [/autoit]

    ... und es gibt noch ne Menge mehr Varianten, die man noch kräftig 'aufbohren' kann. ;)

    ... und noch ein Zitat von Unbekannt:
    Die meisten Computerfehler entstehen zwischen zwei Ohren :D

    • Offizieller Beitrag

    Hi,

    versuch das mal:

    [autoit]

    #include <file.au3>

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

    $search = "xy"
    $path = "test.txt"

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

    Dim $lines_A
    If Not _FileReadToArray($path, $lines_A) Then
    MsgBox(4096, "Error", " Error reading file to Array error:" & @error)
    Exit
    EndIf

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

    For $x = 1 To $lines_A[0]
    If StringInStr($lines_A[$x], $search) <> 0 Then
    MsgBox(64, "Yeah", "Ja, der Text " & $search & " ist in " & @CRLF & $lines_A[$x] & @CRLF & "enthalten!")
    EndIf
    Next

    [/autoit]

    So long,

    Mega