#include #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Change2CUI=y #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** $RING_BUFFER_MINIMUM=1000000 $DELAY_BETWEEN_ITERATIONS_MS=1000 $RING_BUFFER_MINIMUM = 1000000 $DELAY_BETWEEN_ITERATIONS_MS = 1000 GLOBAL $UNIQUE_ROW_TERMINATOR= '~~~$$$~~~|' GLOBAL $BUFFER_INPUT_STRING = "" GLOBAL $BUFFER_INPUT GLOBAL $BUFFER_FILE_ID = 0 GLOBAL $EMPTY_ITERATION_COUNT=0 GLOBAL $BYTES_READ_INTO_BUFFER=0 WHILE 1 $BUFFER_INPUT = CONSOLEREAD() $BYTES_READ_ERROR = @ERROR $BYTES_READ = @EXTENDED FOR $I = 1 TO 10 CONSOLEWRITE("[" & $BYTES_READ_ERROR & "," & $BYTES_READ & "," &StringLen($BUFFER_INPUT) & "]" & @CRLF) SLEEP(50) Next $BYTES_READ_INTO_BUFFER = $BYTES_READ_INTO_BUFFER + $BYTES_READ $BUFFER_INPUT_STRING = $BUFFER_INPUT_STRING & $BUFFER_INPUT SLEEP(100) IF $BYTES_READ = 0 Then IF MOD($EMPTY_ITERATION_COUNT,10) = 0 THEN ; The new buffer has been empty for 10 iterations. CONSOLEWRITE(" Maybe you should exit (#" & $EMPTY_ITERATION_COUNT & ")" & @CRLF) Else CONSOLEWRITE(" No data recieved (#" & $EMPTY_ITERATION_COUNT & ")" & @CRLF) EndIf $EMPTY_ITERATION_COUNT=$EMPTY_ITERATION_COUNT+1 EndIf IF $BYTES_READ_INTO_BUFFER > $RING_BUFFER_MINIMUM THEN ; The buffer is large enough to dump $BUFFER_INPUT_STRING=DUMP_DATA($BUFFER_INPUT_STRING) $EMPTY_ITERATION_COUNT=0 ELSEIF $EMPTY_ITERATION_COUNT = 10 AND $BYTES_READ_INTO_BUFFER > 0 THEN ; The buffer has something small and has been waiting for 10 empty iterations for a final dump. $BUFFER_INPUT_STRING=DUMP_DATA($BUFFER_INPUT_STRING) ENDIF SLEEP($DELAY_BETWEEN_ITERATIONS_MS) WEnd FUNC DUMP_DATA($THIS_BUFFER_INPUT_STRING) $BUFFER_FILE_ID = $BUFFER_FILE_ID + 1 $NEXT_FILE_NAME = "SplitConsole_Buffer_" & $BUFFER_FILE_ID & ".log" $LAST_EOL_TOKEN_START = STRINGINSTR( $THIS_BUFFER_INPUT_STRING , $UNIQUE_ROW_TERMINATOR ,2,-1) ConsoleWrite("($LAST_EOL_TOKEN_START:" & $LAST_EOL_TOKEN_START & ")") ConsoleWrite("{" & stringlen($THIS_BUFFER_INPUT_STRING) & "}") $COMPLETE_BUFFER_BLOCK = STRINGMID(STRINGSTRIPCR($THIS_BUFFER_INPUT_STRING) ,1,$LAST_EOL_TOKEN_START+STRINGLEN($UNIQUE_ROW_TERMINATOR)-1) CONSOLEWRITE(" Writing "& STRINGLEN($COMPLETE_BUFFER_BLOCK) & " from buffer to " & $NEXT_FILE_NAME & @CRLF) $REMAINDER_BUFFER_BLOCK = STRINGMID(STRINGSTRIPCR($THIS_BUFFER_INPUT_STRING) ,$LAST_EOL_TOKEN_START+STRINGLEN($UNIQUE_ROW_TERMINATOR)+2,-1) ConsoleWrite("{" & stringlen($THIS_BUFFER_INPUT_STRING) & "," & stringlen($COMPLETE_BUFFER_BLOCK) &"," & stringlen($REMAINDER_BUFFER_BLOCK) &"}") $BYTES_READ_INTO_BUFFER = 0 FILEWRITE(@SCRIPTDIR & "\" & $NEXT_FILE_NAME,$COMPLETE_BUFFER_BLOCK) RETURN $REMAINDER_BUFFER_BLOCK ENDFUNC