Sry für die späte Antwort..
Du schreibst doch Zeile für Zeile rein, dann setz wenn du eine Zeile drinne hast einfach ein @CRLF und dann die nächste Zeile.
Du sicherst vorher den alten Eintrag und vergleichst ihn mit dem neuen, wenn es ungleich ist dann nimmst du den neuen Eintrag als alten Eintrag und vergleichst wieder, und bei jedem Unterschied immmer davor ein @CRLF rein.
Ich habs versucht umzusetzen aber ich denke so wie es aussieht...
[autoit]
$fc2 = Run("C:\Program Files (x86)\Ubisoft\Far Cry 2\bin\FC2ServerLauncher.exe", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Func Start()
$line = StdoutRead($fc2)
If @error Then Exit
If $line <> "" Then
GUICtrlSetData($Edit1, $line, 1)
EndIf
$line = StderrRead($fc2)
If @error Then Exit
EndFunc ;==>Start
[/autoit]
wird es nicht Zeile für Zeile rein geschrieben...aber verstehe nicht viel von StdoutRead.
Ich habs dann über die Log-Datei probiert..
[autoit]#include <EditConstants.au3>
#include <GuiEdit.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 400, 400, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 0, 5, 398, 387)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $file = FileOpen("C:\Program Files (x86)\Ubisoft\Far Cry 2\bin\dedicated_log.txt", 0)
Global $line
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
While 1
$newline =FileReadLine($file)& @CRLF
If @error = -1 Then ExitLoop
If $line <> $newline Then
GUICtrlSetData($Edit1,$line,1)
;~ MsgBox(0, "Line read:", $line)
$line = $newline
EndIf
Sleep(10)
WEnd
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
FileClose($file)
[/autoit]
aber ich weiss nicht wie ich @CRLF nach jeder Zeile anfügen kann.