如何在tcl wish shell中显示大数据

如何在tcl wish shell中显示大数据,tcl,tk,Tcl,Tk,重新表述问题: 我正在处理http rest调用,并通过http包驱动它们。 因此,我从http::getUrl方法运行了一个http get请求,该方法返回一个包含输出的数组实例 当我执行parray$arrName时,希望shell挂起,因为数据大约在50MB内。 它在tclshell中运行良好,因为它只显示缓冲区输出,而不是完整的输出 在wish.exe中进行逐页读取的任何解决方案都没有出路——由于数据量如此之大,您需要分页。。。具体如何做到这一点取决于您的预算(不一定是金钱——您为此任务

重新表述问题:

我正在处理http rest调用,并通过http包驱动它们。 因此,我从http::getUrl方法运行了一个http get请求,该方法返回一个包含输出的数组实例

当我执行
parray$arrName
时,希望shell挂起,因为数据大约在50MB内。 它在tclshell中运行良好,因为它只显示缓冲区输出,而不是完整的输出


在wish.exe中进行逐页读取的任何解决方案都没有出路——由于数据量如此之大,您需要分页。。。具体如何做到这一点取决于您的预算(不一定是金钱——您为此任务所花费的时间和精力)和数据格式


如果数据是表格形式的,您可能希望使用小部件。如果是HTML格式,则可能会调用。简单地将50Mb的文本转储到stdout几乎没有用处——人类用户无论如何都无法阅读所有这些内容。你要么需要突出显示重要的部分,要么过滤掉不重要的部分…

没有办法——有这么多的数据,你需要分页。。。具体如何做到这一点取决于您的预算(不一定是金钱——您为此任务所花费的时间和精力)和数据格式


如果数据是表格形式的,您可能希望使用小部件。如果是HTML格式,则可能会调用。简单地将50Mb的文本转储到stdout几乎没有用处——人类用户无论如何都无法阅读所有这些内容。您需要突出显示重要的部分,或者过滤掉不重要的部分。

AFAIK文本小部件对于如此多的文本并不真正有用。它试图做很多事情来保持文本的有序性,以使其过载。对不起,我没有别的建议。你必须创建一个寻呼机。显示第一兆字节的文本,并使用“下一页”和“上一页”按钮来移动和显示数据。@BradLanam同意,这可能是我们在linux cmd行中看到的方法之一,按任意键填充页面。是的,不幸的是,Brad建议的解决方案似乎是唯一的解决方案。一次只能显示一段文字。我注意到一件事。如果wish shell的wrap-in设置为none,则显示输出响应。然后我按下“结束”按钮转到最后一个字符,希望shell Hansafaik这个文本小部件对于这么多的文本不是很有用。它试图做很多事情来保持文本的有序性,以使其过载。对不起,我没有别的建议。你必须创建一个寻呼机。显示第一兆字节的文本,并使用“下一页”和“上一页”按钮来移动和显示数据。@BradLanam同意,这可能是我们在linux cmd行中看到的方法之一,按任意键填充页面。是的,不幸的是,Brad建议的解决方案似乎是唯一的解决方案。一次只能显示一段文字。我注意到一件事。如果wish shell的wrap-in设置为none,则显示输出响应。但我按下“结束”按钮转到最后一个字符,希望shell数据是来自ReST调用的json格式。此get调用获取网络中存在的所有网络拓扑的数据。那么多的数据被用作日志,用于跟踪。用自动化来处理这件事似乎很神秘。写现在我转储日志直接到一个文件。但是是的,我会是个好选择祝你好运。。。顺便说一句,如果使用纯Tcl解析器,解析50Mb的JSON数据将非常占用CPU。因此,请务必使用最新的
tcllib
,它附带了一个用C实现的本机JSON解析器。实际上,数据是来自ReST调用的JSON格式。此get调用获取网络中存在的所有网络拓扑的数据。那么多的数据被用作日志,用于跟踪。用自动化来处理这件事似乎很神秘。写现在我转储日志直接到一个文件。但是是的,我会是个好选择祝你好运。。。顺便说一句,如果使用纯Tcl解析器,解析50Mb的JSON数据将非常占用CPU。因此,一定要使用最新的
tcllib
,它附带了一个用C实现的本机JSON解析器。