Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 23:02

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Echtzeit Log

Discussion on Echtzeit Log within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1


 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,495
Received Thanks: 1,769
Echtzeit Log

Hallo,

ich hab jetzt lange gegooglet, konnte aber nichts zu einem Echtzeit Log finden. Ich würde nämlich gerne einen Log anzeigen lassen während mein Programm läuft und wenn bestimmte Funktionen ausgeführt werden, will ich so etwas wie _FileWriteLog() ausführen. Ich hab jetzt gesehen wie man das in eine .txt Datei speichert aber ich will dass es in Echtzeit, also während das Programm läuft angezeigt wird. Weiß jemand eine Lösung?

lg money
Moneypulation is offline  
Old 08/12/2014, 16:22   #2
 
butter123's Avatar
 
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
consolewrite?
butter123 is offline  
Old 08/12/2014, 16:36   #3


 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,495
Received Thanks: 1,769
Quote:
Originally Posted by butter123 View Post
consolewrite?
Aber das speichert den text doch nur in die Konsole von AutoIt. Wenn ich es ausführe passiert ja nichts
Moneypulation is offline  
Old 08/12/2014, 16:52   #4
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,147
So ganz stimmt das nicht, aber notwendig ist es auch nicht. Du kannst beispielsweise ein RichEdit in deiner GUI verwenden, in welches du immer weitere Log-Zeilen hinzufügst. Parallel dazu kannst du die Zeilen auch mittels FileWriteLine() in eine Datei abspeichern.
KDeluxe is offline  
Old 08/12/2014, 17:18   #5
 
butter123's Avatar
 
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
ich versteh dein problem nicht. mit filewrite kannstes speichern, mit consolewrite oder guielementen anzeigen.
butter123 is offline  
Thanks
1 User
Old 08/12/2014, 18:40   #6


 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,495
Received Thanks: 1,769
Code:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>

 Local $myedit, $msg

    GUICreate("Meine GUI mit einem Edit-Feld") ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird

    $myedit = GUICtrlCreateEdit("Erste Zeile" & @CRLF, 176, 32, 121, 97, $ES_AUTOVSCROLL + $WS_VSCROLL)

    GUISetState()
	  Send("{END}")

    ; Wird hinzugefügt, 3. Parameter nicht vergessen!
    GUICtrlSetData($myedit, "Zweite Zeile",1)
	GUICtrlSetData($myedit, "Zweite Zeile2", 1)
	GUICtrlSetData($myedit, "Zweite Zeile3", 1)

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    While 1
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    GUIDelete()
Danke für eure Hilfe. Wisst ihr wie ich jetzt noch einen Zeilenumbruch mach?
Ich denke, ich werde einfach diese GUI anzeigen lassen und dann bei bestimmten Funktionen GUICtrlSetData($myedit, "Funktion xy ausgeführt",1) schreiben

Quote:
Originally Posted by KDeluxe View Post
So ganz stimmt das nicht, aber notwendig ist es auch nicht. Du kannst beispielsweise ein RichEdit in deiner GUI verwenden, in welches du immer weitere Log-Zeilen hinzufügst. Parallel dazu kannst du die Zeilen auch mittels FileWriteLine() in eine Datei abspeichern.
Was genau ist denn ein RichEdit? Google sagt es ist eine UDF aber ich weiß jetzt nicht genau welche Datei das ist
Moneypulation is offline  
Old 08/12/2014, 21:49   #7
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Quote:
Originally Posted by moneypulation View Post
Danke für eure Hilfe. Wisst ihr wie ich jetzt noch einen Zeilenumbruch mach?
Ich denke, ich werde einfach diese GUI anzeigen lassen und dann bei bestimmten Funktionen GUICtrlSetData($myedit, "Funktion xy ausgeführt",1) schreiben



Was genau ist denn ein RichEdit? Google sagt es ist eine UDF aber ich weiß jetzt nicht genau welche Datei das ist
@CRLF -> Carriage return + Linefeed
rich edit ist ein text feld in koda und kann ohne udf genutzt werden

GuiCtrlSetData($Edit,GuiCtrlRead($Edit) & "nächste zeile" & @CRLF)
YatoDev is offline  
Thanks
1 User
Old 08/12/2014, 22:31   #8


 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,495
Received Thanks: 1,769
Quote:
Originally Posted by »FlutterShy™ View Post
@CRLF -> Carriage return + Linefeed
rich edit ist ein text feld in koda und kann ohne udf genutzt werden

GuiCtrlSetData($Edit,GuiCtrlRead($Edit) & "nächste zeile" & @CRLF)
Vielen Dank auch an dich
Moneypulation is offline  
Old 08/12/2014, 23:31   #9
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by »FlutterShy™ View Post
@CRLF -> Carriage return + Linefeed
rich edit ist ein text feld in koda und kann ohne udf genutzt werden

GuiCtrlSetData($Edit,GuiCtrlRead($Edit) & "nächste zeile" & @CRLF)
diese methode eines logs hat einige große nachteile.
der erste nachteil ist, das es kein autoscroling gibt...
bsp:
Code:
GUICreate("GUI", 300, 300, Default, Default, 0x10C80000)
GUICtrlCreateEdit("", 5, 5, 290, 290, 0x200844)
For $i=0 To 100
	GUICtrlSetData(-1, GUICtrlRead(-1)&@CRLF&$i&" -> abcdefghijklmnopqrstuvwxyz")
Next
While GUIGetMsg()<>-3
WEnd
eine potentielle lösung hierfür wäre die letzte zeile immer oben einzufügen.

ein viel schlimmerer nachteil aber ist, das bei jeder aktualisierung, stets der gesamte log eingelsen werden muss (was irgendwann im laufe der zeit mit sicherheit für probleme sorgen wird). somit wird mit steigender loggröße nicht nur das aktualisieren länger dauern, sondern irgendwann muss das ganze auch zwangsweise zum totalabsturz führen (spätestens, wenn der log mehr speicher benötigt, als zur verfügung steht)

bsp:
Code:
Dim $string
For $i=0 To 10000
	$string &= 'a'
Next
GUICreate("GUI", 300, 300, Default, Default, 0x10C80000)
GUICtrlCreateEdit("", 5, 5, 290, 290, 0x200844)
For $i=0 To 100
	GUICtrlSetData(-1, GUICtrlRead(-1)&@CRLF&$i&" -> "&$string)
Next
While GUIGetMsg()<>-3
WEnd
die einzige lösung für dieses problem wäre in der tat ein wirkliches rich edit, statt des normalen edits zu nutzen.
lolkop is offline  
Thanks
1 User
Old 08/13/2014, 01:28   #10


 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,495
Received Thanks: 1,769
Quote:
Originally Posted by lolkop View Post
diese methode eines logs hat einige große nachteile.
der erste nachteil ist, das es kein autoscroling gibt...
bsp:
Code:
GUICreate("GUI", 300, 300, Default, Default, 0x10C80000)
GUICtrlCreateEdit("", 5, 5, 290, 290, 0x200844)
For $i=0 To 100
	GUICtrlSetData(-1, GUICtrlRead(-1)&@CRLF&$i&" -> abcdefghijklmnopqrstuvwxyz")
Next
While GUIGetMsg()<>-3
WEnd
eine potentielle lösung hierfür wäre die letzte zeile immer oben einzufügen.

ein viel schlimmerer nachteil aber ist, das bei jeder aktualisierung, stets der gesamte log eingelsen werden muss (was irgendwann im laufe der zeit mit sicherheit für probleme sorgen wird). somit wird mit steigender loggröße nicht nur das aktualisieren länger dauern, sondern irgendwann muss das ganze auch zwangsweise zum totalabsturz führen (spätestens, wenn der log mehr speicher benötigt, als zur verfügung steht)

bsp:
Code:
Dim $string
For $i=0 To 10000
	$string &= 'a'
Next
GUICreate("GUI", 300, 300, Default, Default, 0x10C80000)
GUICtrlCreateEdit("", 5, 5, 290, 290, 0x200844)
For $i=0 To 100
	GUICtrlSetData(-1, GUICtrlRead(-1)&@CRLF&$i&" -> "&$string)
Next
While GUIGetMsg()<>-3
WEnd
die einzige lösung für dieses problem wäre in der tat ein wirkliches rich edit, statt des normalen edits zu nutzen.
Das mit dem Scrolling ist mir auch aufgefallen aber ich hab schnell eine Lösung gefunden. Nach jedem Eintrag hab ich _GUICtrlEdit_Scroll ( $Log, $SB_SCROLLCARET ) geschrieben.

Aber mit dem Speicher hast du Recht. Daran hab ich noch garnicht gedacht. Und mein Bot soll für mehrere Stunden einbahnfrei funktionieren.

Danke dir

Edit: Ich werde wohl den Log jede 10-20 Minuten durch einen Timer beenden und wieder neu ausführen. Das hat zum glück keine Auswirkung auf den Bot
Moneypulation is offline  
Old 08/13/2014, 10:33   #11
 
butter123's Avatar
 
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
wenns sehr auf performance ankommt, schreib dir vllt einen externen log. (nur ne idee, nicht getestet)
sende mit ConsoleWrite an den StdOut stream und benutz eine neue exe um den stream mit StdOutRead auszulesen. Die als CUI anstatt als GUI kompilieren und alles eingelesene wieder mit ConsoleWrite ausgeben. Ich denke dass das Cmd Fenster auf zeilenweises anzeigen von text optimiert ist^^
butter123 is offline  
Thanks
1 User
Old 08/13/2014, 12:50   #12
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Quote:
Originally Posted by butter123 View Post
wenns sehr auf performance ankommt, schreib dir vllt einen externen log. (nur ne idee, nicht getestet)
sende mit ConsoleWrite an den StdOut stream und benutz eine neue exe um den stream mit StdOutRead auszulesen. Die als CUI anstatt als GUI kompilieren und alles eingelesene wieder mit ConsoleWrite ausgeben. Ich denke dass das Cmd Fenster auf zeilenweises anzeigen von text optimiert ist^^
Man kann es aber auch derbe auf die Spitze treiben...
FileWrite wird wohl reichen.
alpines is offline  
Thanks
1 User
Old 08/13/2014, 16:05   #13
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Quote:
Originally Posted by moneypulation View Post
Edit: Ich werde wohl den Log jede 10-20 Minuten durch einen Timer beenden und wieder neu ausführen. Das hat zum glück keine Auswirkung auf den Bot
$string darein den text für den log speichern und nur noch GuiCtrlSetData ausführen. z.b. nach 100 einträgen kannst du $string löschen
YatoDev is offline  
Thanks
1 User
Old 08/13/2014, 17:15   #14


 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,495
Received Thanks: 1,769
Quote:
Originally Posted by »FlutterShy™ View Post
$string darein den text für den log speichern und nur noch GuiCtrlSetData ausführen. z.b. nach 100 einträgen kannst du $string löschen
Stimmt, so gehts auch
Moneypulation is offline  
Old 08/13/2014, 20:53   #15
 
butter123's Avatar
 
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
Quote:
Originally Posted by alpines View Post
Man kann es aber auch derbe auf die Spitze treiben...
FileWrite wird wohl reichen.
naja 5 minuten arbeit für nen guten log^^

Log:
Test Funktion:
butter123 is offline  
Reply


Similar Threads Similar Threads
In Echtzeit Rohstoffe produzieren
07/31/2013 - Web Development - 15 Replies
Hallo ihr Lieben, da ich immoment anscheinend Spaß habe, ein BG zu programmieren, wollte ich euch einmal Fragen, wie es funktioniert, z.B. Holz in Echtzeit zu fördern, da ich es selber nicht weiß. :P
In Echtzeit Onlinestatus abfragen
07/19/2013 - Metin2 PServer Guides & Strategies - 16 Replies
Hi Leute! Da ich momentan ein sicheres Auktionshaus in meinen Testserver integriegen möchte, habe ich nach einer Möglichkeit gesucht, den Onlinestatus des Spielers direkt und ohne Umwege über die last_play Spalte abzufragen, da diese nichts über den konkreten Onlinestatus aussagt. Da auch andere dieses Problem haben könnten, stelle ich euch nun die Lösung dazu vor. Die Log-Tabelle speichert jeden Login/Logout, selbst wenn der Client nicht ordnungsgemäß geschlossen wird. (Beispiel:...
Men of War: Goldene Zeiten für Echtzeit-Strategen
03/15/2012 - Gaming News - DE - 16 Replies
Mehr Echtzeit-Taktik als jemals zuvor! Peter Games führt Strategiefans erneut ins Schlachtengetümmel des Zweiten Weltkriegs und veröffentlicht Men of War: Gold Edition für PC. Die exklusive Sammleredition steht ab 30. März 2012 in den Händlerregalen und vereint erstmals alle WWII-Teile und -Erweiterungen der legendären Strategiespiel-Reihe. Men of War: Gold Edition beinhaltet folgende Titel: Men of War Men of War: Red Tide Men of War: Assault Squad Men of War: Assault Squad –...
MMORPG Suche -> Echtzeit Kampfsystem.
11/06/2011 - Main - 3 Replies
Welche MMORPG´s mit Echtzeitkampfsystem kennt ihr? Also kein WoW oder so ein shit wo du Rundenbasierend kämpfst. Bitte mit Fantasy setting kein weltraum od. warrock shit :) Fur deppen (ArctiicInc) Das ist echtzeit. http://www.youtube.com/watch?v=Y8W__Hs5boI&fe ature=related
echtzeit chat logger
12/30/2004 - General Gaming Discussion - 2 Replies
hat wer sowas? hab zwar einene gefunden, aber der ist zu alt und funzt nichmehr. ansonsten hab ichs mal mim packet sniffer versucht, aber die packete zu interpretieren ist doch schwerer als man denkt hehe.



All times are GMT +2. The time now is 23:02.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.