1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Mennimax

Beiträge von Mennimax

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • Mennimax
    • 20. Februar 2015 um 14:19

    <p>Desshalb hab ich auch direkt ndanach gefragt, und es klang mir am einfachsten.</p>

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • Mennimax
    • 19. Februar 2015 um 18:09

    Es handelt sich um SA:MP, daher stört es nicht, wenn die tasten gesendet werden, denn wie oben geschrieben handelt es sich um ein keybinder.

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • Mennimax
    • 19. Februar 2015 um 00:07

    Ich denke mal das wird viel zu kompliziert. Die ansätze habe ich ja und die vorgehensweise für den script auch. Nur das schreiben in richtiger form und das einsetzen der richtigen befehle fällt mir schwer.

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • Mennimax
    • 18. Februar 2015 um 21:51

    dann habe ich das missverstanden. der chat wird local auf meinem pc gespeichert und es ist immer aktuell.

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • Mennimax
    • 18. Februar 2015 um 17:21

    das chatprotokoll auf einem server oder ähnliches, sondern im ordner users/benutzer/dokuments

    also local gespeichert. wenn ich in das protokol etwas schreiben würde, das protokoll wird einfach nur vom programm geführt und hat ansonsten kein offensichtlichen nutzen.

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • Mennimax
    • 17. Februar 2015 um 22:24

    jedoch würde "MsgBox" bewirken, dass sich ein fenster mit dem text öffnet, und es würde die ganze zeile wiedergegeben werden.

    ich mach mal ein beispiel.
    es handelt sich um 3 Personen.

    Ich bin PersonC

    personA schreibt in den chat: "ich hätte gerne ein gutschein für 10€".
    das programm protokolliert das und in dem auszulesendem Chatlog.txt steht nun folgendes:

    ".....
    .....
    21:53 PersonA: Ich hätte gerne ein Gutschein für 10€"

    das scribt soll nun diese letzte zeile erfassen, und als textausgabe(ich denke mal der Befehl "SendChat" oder "SendKeys.Send") die tasten wie folgt drücken: "gebe PersonA ein Gutschein im wert von 10€" und dieses mit ENTER bestätigen

    ".....
    21:53 PersonA: Ich hätte gerne ein Gutschein für 10€
    21:54 PersonC: gebe PersonA ein Gutschein im wert von 10€"

    sollte nun eine PersonB schreiben:
    "Ich hätte gerne ein Gutschein für 12€"

    im log also folgendes:

    ".....
    21:53 PersonA: Ich hätte gerne ein Gutschein für 10€
    21:54 PersonC: gebe PersonA ein Gutschein im wert von 10€
    22:02 PersonB: Ich hätte gerne ein gutschein für 12€"

    und wieder soll nur der Name also "PersonB" und der betrag "12" erfasst werden und als nachricht in das programm(welche natürlich offen/im vordergrund ist) eingetippt werden "gebe PersonB ein Gutschein im wert von 12€"

    leider weiß ich dies nicht umzuseten.

    mein lösungsweg wäre:

    chatlog öffnen und analysieren, ob in der letzten zeile "Ich hätte gerne ein gutschein für" steht. <---dieser text ist immer gleich.
    1. fals nein sleep-befehl und wieder zum anfang.
    2. fals ja soll das 2. wort(in dem fall der name) sowie das 9. wort(der betrag) in eine variable gefasst werden und als "SendChat" oder "SendKeys.Send" einfach nur getippt werden

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • Mennimax
    • 17. Februar 2015 um 18:37

    Keybinder ist ein besserer begriff, aber egal wie sehr ich mich beschäftige werde ich aus manchen Sachen trotzdem nicht schlau.

    Ich hab mir das alles etwas leichter vorgestellt, da ich schon Erfahrung mit der Programmierung eines "Raspberry Pi" habe, wie zum Beispiel das starten eines alten PKW´s mit dem Handy was an sich auch sehr komplex ist. Meine Vorstellung zu diesem Script war, aus einem ChatLog immer die neuste Zeile(=die unterste) auszulesen und 2 Wörter, die in der Zeile stehen als Tastendruck wiederzugeben.
    Hätte ich gewollt, dass mir jemand ein Keybinder schreibt, so wäre ich nicht in diesem Forum.
    Ich bin deshalb hergekommen, weil ich gleichzeitig auch diese Programmiersprache lernen wollte.

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • Mennimax
    • 17. Februar 2015 um 00:38
    Code
    #include <File.au3>
    
    
    While Sleep(100)
    If FileReadLine("C:\test.txt", _FileCountLines("C:\test.txt")) = "66" Then;
    
    
                            SendChat("test")
    
    
    EndIf
    WEnd
    Alles anzeigen

    also wenn ich das jetzt richtig verstehe wird

    1. "While Sleep(100)" der Befehl bis "WEnd" alle 100ms ausgeführt
    2. "If FileReadLine" in der zuvor geöffneten Datei nur die letzte Zeile ausgelesen
    3. sobald "66" in der letzten Zeile ausgelesen wird "then" aktiviert
    4. und "then" wird automatisch durch "SendChat("test")" das wort "test" das momentan aktive fenster z.b. browser url schreiben

    5.wird der "then"-Befehl durch "EndIf" abgeschlossen?
    6. oder ist der Befehl "SendChat("test")" eher durch "My.Computer.Keyboard.SendKeys("test")" zu ersetzen?

    Danke für die hilfreichen Antworten

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • Mennimax
    • 16. Februar 2015 um 22:43

    Danke für die Antwort alpines


    Demnach wäre ich bei

    Code
    #include <File.au3>
    
    
    $file = FileOpen("C:\test.txt", -1) 
    FileReadLine
    
    
    If "Befehl, wenn die zahl 66 erkannt wird"
    My.Computer.Keyboard.SendKeys("Text der geschrieben werden soll")
    End If


    dann wird jedoch die letzte zeile nur einmal und nicht wiederholt ausgelesen oder sehe ich das falsch?

  • Letzte Zeile einer sich ändernden .txt auslesen und eine textausgabe erstellen

    • Mennimax
    • 16. Februar 2015 um 22:17

    Hey liebe Community,
    ich würde gerne wissen wie es möglich ist aus einer .txt Datei jede Sekunde die letzte Zeile auszulesen.

    nehme ich mal an die Datei ist auf dem Pfad C:\ und heißt Test.txt

    "$file = FileOpen("C:\test.txt", -1)"

    und ein externes Programm listet in (zeitlich) unregelmäßigen abständen eine zahl in diese Test.txt datei

    z.b.

    18
    25
    66
    93

    so möchte ich, dass autoit erkennt, wenn die zahl 66 geschrieben wurde, und soll dann in meinem aktiven Fenster eine Textausgabe in Form von

    If "Befehl, wenn die zahl 66 erkannt wird"
    My.Computer.Keyboard.SendKeys("Text der geschrieben werden soll")
    End If


    Tut mir leid wenn es etwas unverständlich geschrieben ist, bin noch ein Anfänger in Sachen AutoIt.
    Danke schonmal im vorraus.

    MfG Mennimax

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™