• 15887阅读
  • 22回复

想用QProcess做重定向输出,问题出于哪? [复制链接]

上一主题 下一主题
离线iiiyyyhhhsss
 

只看楼主 正序阅读 楼主  发表于: 2009-08-28
#include<QProcess>
int main()
{
    QProcess *poc=new QProcess;
    poc->start("ping www.baidu.com>d:output");
    return 0;
}


我想把ping www.baidu.com之后的内容的内容输出到一个名为output的文档
[ 此帖被iiiyyyhhhsss在2009-08-29 00:13重新编辑 ]
离线iiiyyyhhhsss

只看该作者 22楼 发表于: 2009-08-31
修改了之后就存到新目录里?可否详细一点呢。。
离线hiti_tony
只看该作者 21楼 发表于: 2009-08-31
不会啊,我修改了之后就存到新目录里了
离线dbzhang800

只看该作者 20楼 发表于: 2009-08-30
引用第19楼iiiyyyhhhsss于2009-08-30 14:03发表的  :
直接访问外部进程的内部变量就最好了
实际上这是不是可行的呢?



不可行
离线iiiyyyhhhsss

只看该作者 19楼 发表于: 2009-08-30
这样是可以的,但总感觉这方法有点麻烦,如果能够进程间通讯,直接访问外部进程的内部变量就最好了
实际上这是不是可行的呢?
离线wader
只看该作者 18楼 发表于: 2009-08-30
QProcess::readAll()函数返回的是一个QString,对这个字符串解析,应该能实现吧
离线iiiyyyhhhsss

只看该作者 17楼 发表于: 2009-08-30
现在我想更深一层地实现部分内容重定向输出,这个可以吗?就是针对内容中某些关键的输出值进行提取。。。。
离线iiiyyyhhhsss

只看该作者 16楼 发表于: 2009-08-30
不知道为什么,直接拿你的例子编译成功,但运行的时候,效果就是没有出来。。。

不过我用你的方法,自己编了一个,效果非常好!太感谢了。。。。呵呵
离线wader
只看该作者 15楼 发表于: 2009-08-30
我做过一个例子,在我的博客里,楼主可以参考一下:
http://blog.csdn.net/WaderChan/archive/2009/05/19/4199913.aspx
[ 此帖被wader在2009-08-30 08:07重新编辑 ]
离线iiiyyyhhhsss

只看该作者 14楼 发表于: 2009-08-29
好的,我查查看
离线iiiyyyhhhsss

只看该作者 13楼 发表于: 2009-08-29
按它的意思,如果我要把输出重定向到我的qt界面上,那么需要填的参数就是本身的这个qt界面程序,那么这个参数如何填啊?
离线dbzhang800

只看该作者 12楼 发表于: 2009-08-29
这种情况显然你没有另外一个process
你需要的应该是
QByteArray readAllStandardError ()
QByteArray readAllStandardOutput ()

配合两个信号来用应该就可以了。

我没有过,只是猜的
离线iiiyyyhhhsss

只看该作者 11楼 发表于: 2009-08-29
用这个函数void QProcess::setStandardOutputProcess ( QProcess * destination );
是否可以把输出重定向到我编写的界面的QTextEdit类对象上?
这个函数的参数QProcess  *destinnation是怎么样的一个参数,应该填写什么呢?
离线dbzhang800

只看该作者 10楼 发表于: 2009-08-29
用的相对路径,当然是在你的这个程序的工作目录下了。当然了,多数时候 工作目录和程序所在的目录是一致的,但你用ide时候,就要具体分析了,比如 此时的工作目录很可能就是你的工程所在 目录。
离线iiiyyyhhhsss

只看该作者 9楼 发表于: 2009-08-29
怎么修改为poc->setStandardOutputFile("d:\output.txt");后,
output.txt还是放在debug里了,如何修改其路径呢?
[ 此帖被iiiyyyhhhsss在2009-08-29 21:16重新编辑 ]
离线iiiyyyhhhsss

只看该作者 8楼 发表于: 2009-08-29
我找到了,放到了工程的debug里.....
[ 此帖被iiiyyyhhhsss在2009-08-29 21:15重新编辑 ]
离线iiiyyyhhhsss

只看该作者 7楼 发表于: 2009-08-29
不过我想问问,output.txt默认放到哪里了?
离线iiiyyyhhhsss

只看该作者 6楼 发表于: 2009-08-29
呵呵,太感谢dbzhang800你了。。。。
离线dbzhang800

只看该作者 5楼 发表于: 2009-08-29
引用第4楼iiiyyyhhhsss于2009-08-29 09:34发表的  :
这个和输出重定向有什么联系呢?即使有联系,好像也太复杂了吧?

#include<QProcess>
int main()
{
    QProcess *poc=new QProcess;
    poc->setStandardOutputFile("output.txt");
    poc->start("ping www.baidu.com");

    return 0;
}
离线iiiyyyhhhsss

只看该作者 4楼 发表于: 2009-08-29
这个和输出重定向有什么联系呢?即使有联系,好像也太复杂了吧?
离线XChinux

只看该作者 3楼 发表于: 2009-08-29
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线iiiyyyhhhsss

只看该作者 2楼 发表于: 2009-08-28
如何接收呢?以什么形式接收,可以把代码写出来吗?
离线XChinux

只看该作者 1楼 发表于: 2009-08-28
你可以接收QProcess对象的输出。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个