Что нового

Чтение данных через ConsoleRead в своем приложении

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
Всем привет.
Есть свой скрипт, в котором в консоль выводится разная информация.
С недавнего времени захотелось иметь возможность увидеть ее в уже скомпилированой программе, скажем окно debug.
Как можно получить эту информацию, справка и поиск пока не наставили меня на верный путь. Поменять все ConsoleWrite на что нибудь другое не вариант.
Пробывал через Consoleread, но не получается. В справке пример немного другой.


UPD
Решение нашлось ТУТ
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Если скрипт выводить данные в консоль, то ни чего не мешает сразу же после консоли - выводить информацию в свое Gui окно.
 
Автор
R

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
Ну в коде таких строк много, добавлять после каждого вывода еще код не целесообразно, я подумал в отдельном цикле или через Adlib читать данные через ConsoleRead, но ничего не прочиталось у меня.
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
А зачем усложнять себе жизнь?
Можно создать свобю функцию, которая и в консоль будет выводить лог и в свое Debug окно. Например:
Код:
Func _Log($sText)
	ConsoleWrite($sText)
	_DebugWin($sText)
EndFunc


И вместо ConsoleWrite($sText) писать _Log($sText)
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
r35p3ct вот скрипт "лентяйчик" для того, что `p r o x y прописал ;D

Код:
#include <File.au3>
$filename = "твой_скрипт.au3" ; на всякий копию сделай ))
 _ReplaceStringInFile($filename,'ConsoleWrite','_Log')
FileOpen($filename,1) 
FileWrite($filename,@CRLF&'Func _Log($sText)'&@CRLF&'ConsoleWrite($sText)'&@CRLF&'_DebugWin($sText)'&@CRLF&'EndFunc')



Добавлено:
Сообщение автоматически объединено:


r35p3ct
можешь например так:
Код:
#include <File.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
GUICreate("log", 420, 320, 300, 200)
$Edit1 = GUICtrlCreateEdit("", 10, 15, 400, 250, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_VSCROLL))
GUICtrlSendMsg($Edit1, $EM_LIMITTEXT, -1, 0) ; снимает ограничение 32kб с поля  Edit1
$Button1 = GUICtrlCreateButton("Очистить", 300, 280, 75, 25)
GUISetState(@SW_SHOW)
AdlibRegister("_Log",1000)
AdlibRegister("_testEdit",900)

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit

         Case $Button1
            FileDelete(@ScriptDir & '\_Log.txt')
            _FileCreate(@ScriptDir & '\_Log.txt')
            GUICtrlSetData($Edit1,'')
   EndSwitch
WEnd


Func _Log()
   _FileWriteLog(@ScriptDir & '\_Log.txt',Random(1,9999999,1),1)
EndFunc


Func _testEdit()
   $file = FileOpen(@ScriptDir & '\_Log.txt', 0) ; Открыть для чтения
   $data = FileRead($file)
   FileClose($file)
   If $data = GUICtrlRead($Edit1) Then Return
   GUICtrlSetData($Edit1, $data)
EndFunc
 
Верх