Jump to content

stdoutread output help


 Share

Go to solution Solved by kylomas,

Recommended Posts

when I run the process in cmd i get this output

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\"eac3to.exe" "f:\"
1) 00800.mpls, 1:42:13
   [879+880+881+882+883+884+885+886+887+888+800].m2ts
   - Chapters, 16 chapters
   - h264/AVC, 1080p24 /1.001 (16:9)
   - DTS Master Audio, English, multi-channel, 48kHz
   - DTS Master Audio, Japanese, multi-channel, 48kHz

2) 00801.mpls, 1:42:13
   [879+889+881+890+883+891+885+892+887+888+800].m2ts
   - Chapters, 16 chapters
   - h264/AVC, 1080p24 /1.001 (16:9)
   - DTS Master Audio, English, multi-channel, 48kHz
   - DTS Master Audio, Japanese, multi-channel, 48kHz

3) 00861.mpls, 00887.m2ts, 0:54:14
   - h264/AVC, 1080p24 /1.001 (16:9)
   - DTS Master Audio, English, multi-channel, 48kHz
   - DTS Master Audio, Japanese, multi-channel, 48kHz

4) 00856.mpls, 00883.m2ts, 0:24:14
   - h264/AVC, 1080p24 /1.001 (16:9)
   - DTS Master Audio, English, multi-channel, 48kHz
   - DTS Master Audio, Japanese, multi-channel, 48kHz

5) 00404.mpls, 0:15:43
   [908+909+910+911].m2ts
   - Chapters, 4 chapters
   - h264/AVC, 1080p24 /1.001 (16:9)
   - AC3, English, stereo, 48kHz

C:\

when I run my script

Func _GetTrack()
    $sStdout = ""
        $prog = @TempDir & "\eac3to.exe"
        $input = "F:\"

        $hPid = Run('"' & $prog & '""' & $input & '"',$input,@SW_HIDE,0x2)

            While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                Case $GUI_EVENT_CLOSE
                    exitprog()
                EndSwitch
                    $sStdout &= StdoutRead($hPid,False)
                    If @error Then ExitLoop
                    If StringLen($sStdout) > 0 Then
                        MsgBox(0,"TRACKS",$sStdout)
                    EndIf
            WEnd

EndFunc ;==>_GetTrack

I get this in my msgbox...

is there a way I can clean up the output so the msgbox displays only the text?

post-84394-0-80904700-1412993879_thumb.p

Link to comment
Share on other sites

Try this:

Func _GetTrack()
    $sStdout = ""
    $prog = @TempDir & "\eac3to.exe"
    $input = "F:\"

    $hPid = Run('"' & $prog & '""' & $input & '"', $input, @SW_HIDE, 0x2)

    While ProcessExists($hPid)
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                exitprog()
        EndSwitch
    WEnd
    $sStdout = StdoutRead($hPid)
    MsgBox(0, "TRACKS", $sStdout)

EndFunc

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

  • Solution

ajenkins,

Try this.  It replaces hex '08' with ''.

Func _GetTrack()
    $sStdout = ""
        $prog = @TempDir & "\eac3to.exe"
        $input = "F:\"

        $hPid = Run('"' & $prog & '""' & $input & '"',$input,@SW_HIDE,0x2)

            While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                Case $GUI_EVENT_CLOSE
                    exitprog()
                EndSwitch
                    $sStdout &= StdoutRead($hPid,False)
                    If @error Then ExitLoop
                    If StringLen($sStdout) > 0 Then
                        MsgBox(0,"TRACKS",stringregexpreplace($sStdout,'\x08',''))
                    EndIf
            WEnd

EndFunc ;==>_GetTrack

kylomas

Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...