怎么修改此程序

如何修改此程序

String ExecuteApp(String sCmdline,TMemo *MyMemo)
{
    PROCESS_INFORMATION proc = {0};
    long ret;
    bool bret;
    STARTUPINFO start = {0};
    SECURITY_ATTRIBUTES sa = {0};
    HANDLE hReadPipe ;
    HANDLE hWritePipe;
    String sOutput;
    String sBuffer;
    unsigned long lngBytesRead;
    char cBuffer[257];
    sa.nLength = sizeof(sa);
    sa.lpSecurityDescriptor=0;
    sa.bInheritHandle = TRUE;
    bret =::CreatePipe(&hReadPipe, &hWritePipe,&sa, 0);
    if (!bret)
    {
        sOutput="CreatePipe failed. Error: " + String(GetLastError());
        MyMemo->Lines->Add(sOutput);
        return sOutput;
    }
    start.cb = sizeof(STARTUPINFOA);
    start.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
    start.hStdOutput = hWritePipe;
    start.hStdError = hWritePipe; 
    start.wShowWindow = SW_HIDE;
    sBuffer = sCmdline;
    ret =::CreateProcess(0, sBuffer.c_str(), &sa, &sa, TRUE, NORMAL_PRIORITY_CLASS, 0, 0, &start, &proc);
    if (ret == 0)
    {
        sOutput="Bad command or filename";
        MyMemo->Lines->Add(sOutput);
        return sOutput; 
    }
    ::CloseHandle(hWritePipe);
    do
    {
        memset(cBuffer,'\0',sizeof(cBuffer));
        ret = ::ReadFile(hReadPipe, &cBuffer, 256, &lngBytesRead, 0);
        sBuffer=StrPas(cBuffer);
        sOutput = sOutput + sBuffer;
        MyMemo->Text=MyMemo->Text+sBuffer;
        Application->ProcessMessages();

    } while (ret != 0 );
    ::CloseHandle(proc.hProcess);
    ::CloseHandle(proc.hThread);
    ::CloseHandle(hReadPipe);
    return sOutput;
}


void __fastcall TForm1::Button1Click(TObject *Sender)
{
  ExecuteApp(Edit1->Text,Memo1);
}
如何修改此程序,我只想在memo1中显示true和false(不显示Ping的一大堆结果),Ping通就显示true,否者就显示false。想了很久都没什么头绪,忘大侠们指点。
------解决方案--------------------
ping通了都有类似下面这种字符串,判断字符串就行了


Pinging www.qq.com [14.17.32.211] with 32 bytes of data:

Reply from 14.17.32.211: bytes=32 time=24ms TTL=54
Reply from 14.17.32.211: bytes=32 time=23ms TTL=54
Reply from 14.17.32.211: bytes=32 time=21ms TTL=54
Reply from 14.17.32.211: bytes=32 time=26ms TTL=54

Ping statistics for 14.17.32.211:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 21ms, Maximum = 26ms, Average = 23ms


------解决方案--------------------
这是种很糟糕的方式,不过不管了,就着你这样改吧

String ExecuteApp(String sCmdline,TStringList *li) // 改传一个字串列表类型
这段改改
    do
    {
        memset(cBuffer,'\0',sizeof(cBuffer));
        ret = ::ReadFile(hReadPipe, &cBuffer, 256, &lngBytesRead, 0);
        sBuffer=StrPas(cBuffer);
        sOutput = sOutput + sBuffer;
        li->Text=li->Text+sBuffer; // 把结果保存到这个字串列表li里
        //不需要了 Application->ProcessMessages();
 
    } while (ret != 0 );


// TMemo *MyMemo1 也改用 TStringList
String ResultApp(TStringList *li)
{
   String sResult;
   if(li->Text.AnsiPos("往返行程的估计时间"))
   {
    sResult = "true";
    li->Clear();