Wert aus txt datei auslesen

  • Hallo leute,
    ich hab ein problem was ich bis jetzt noch nicht durch suchen in der help file oder durch googeln lösen konnte. sollte für euch nicht allzu schwer sein denke ich :S
    also, ich möchte ein programm schreiben, welches einen Wert; in dem fall eine zahl, hinter einem spezifischem satz aus einer Txt-datei ausliest und in den zwischenspeicher kopiert oder ähnliches.

    z.B

    "[14:08:00.000] Irgendein Text...
    "[14:08:01.396] Verbleibende Tage : 1111" ( also nur die "1111")
    "[14:08:03.000] Irgendein Text...

    also dass er hier den String "Verbleibende Tage" findet und den stringwert ausliest.

    Mit freundlichen Grüßen

    nightmare

    Einmal editiert, zuletzt von NiGHTMARE (13. April 2010 um 18:48)

  • So ungefähr:

    [autoit]

    #include <File.au3>

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

    Local $aText, $sSearch = "Verbleibende Tage : "
    _FileReadToArray(@ScriptDir & "\Test.txt", $aText)

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

    For $i = 1 To $aText[0]
    If StringInStr($aText[$i], $sSearch) Then
    ClipPut(StringTrimLeft($aText[$i], StringLen($sSearch) + 16))
    ExitLoop
    EndIf
    Next

    [/autoit]
  • tut mir leid das ich das nicht auf anhieb verstehe, aber was ist jetzt $i also

    For $i = 1 To $aText[0]

    und wie bekomme ich es hin, dass er den wert in den zwischenspeicher nimmt?
    ist eines meiner ersten scripts also bitte nicht böse sein das ichs nicht verstehe.

  • Machs einfach so, das ist einfacher mit RegExp:

    [autoit]

    $sText = _
    "[14:08:00.000] Irgendein Text..." & @CRLF & _
    "[14:08:01.396] Verbleibende Tage : 1111" & @CRLF & _
    "[14:08:03.000] Irgendein Text..." & @CRLF

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

    $aRet = StringRegExp($sText, "Verbleibende Tage : (\d+)", 3)
    If Not @error Then MsgBox(0, "", $aRet[0])
    ;oder If Not @error Then ClipPut($aRet[0])

    [/autoit]

    Du musst den Text natürlich nicht im Script speichern, sondern kannst auch

    [autoit]

    $sText = FileRead(...)

    [/autoit]

    machen ;)

  • der text ändert sich doch alle paar sekunden in der txd.
    deswegen wäre glaube ich die andere variante die einzige möglichkeit oder?

  • tut mir leid das ich das nicht auf anhieb verstehe, aber was ist jetzt $i also

    For $i = 1 To $aText[0]

    und wie bekomme ich es hin, dass er den wert in den zwischenspeicher nimmt?
    ist eines meiner ersten scripts also bitte nicht böse sein das ichs nicht verstehe.


    Mit dem Befehl "_FileReadToArray" wird deine Datei zeilenweise in ein Array($aText) eingelesen.

    Das nullte Element von diesem Array ($aText[0]) enthält die Anzahl der eingelesenen Zeilen.

    $i ist eine Zählvariable die nur hochgezählt wird und somit wird jedes Element des Arrays analysiert.

    War das verständlich?

    greetz Blade

    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.