【问题标题】:Analyzing 115000 strings pasted to console分析粘贴到控制台的 115000 个字符串
【发布时间】:2014-09-03 12:44:48
【问题描述】:

我正在做关于文本分析的任务。这是控制台 C# 应用程序。该程序适用于 10 个字符串。我键入字符串,按 ENTER,在控制台上读取结果。 现在我必须分析来自基本输入的 115000 个字符串(复制过去到控制台)。 当我按 PAST 时,它会粘贴 30 秒,仅此而已。 ENTER 上没有任何行为。我如何在控制台中处理如此大的数据?

【问题讨论】:

  • ctrl+v 在控制台应用程序中不起作用。左上角编辑 |粘贴有用吗?
  • 请阅读您写的内容并尝试在其中找到问题。
  • 看一下流抽象。可以以相同的方式处理控制台和文件输入。文件对于大输入很有用
  • 尝试将您的输入存储在文件中,然后使用type YourInputFile | YourConsoleApplication.exe 运行您的控制台应用程序。 type 输出文件文本,|| 左侧的输出重定向到右侧的输入。它是否有效取决于应用程序。

标签: c# string text console bigdata


【解决方案1】:

我认为你应该做一个 Windows 窗体应用程序。如果您正在处理大数据,最好对其进行更多控制

【讨论】:

  • 在他的示例中,您从控制台应用程序到 winforms 失去了哪些功能?
  • 任务中说的应该是控制台应用。
【解决方案2】:

ctrl+v 在控制台应用程序中不起作用。转到控制台窗口的左上角,然后按编辑 --> 粘贴。

如果您想在控制台应用程序中扩展 ctrl+v,请查看其他堆栈 question

【讨论】:

    【解决方案3】:

    如果您的所有字符串都在一行上,那么您将遇到 Windows 对命令行中允许的字符数的限制。不幸的是,这个限制没有很好的记录。根据这篇适用于 XP 和 Server 2003 的旧文章:Command prompt (Cmd. exe) command-line string limitation:

    在运行 Microsoft Windows XP 或更高版本的计算机上,您可以在命令提示符处使用的最大字符串长度为 8191 个字符。

    但是,该文章可能已过时。根据this answer

    似乎命令行命令的“参数”字符串在 XP 中限制为 2048 个字符,在 Win7 中限制为 32768 个字符

    您应该做的不是将一个巨大的字符串粘贴到命令行进行分析,而是在命令行参数中给出包含字符串的文件的名称,并使用File.ReadAllLines(path) 来读取字符分析它们。

    更新 如果您的任务指定您绝对必须从控制台应用程序的标准输入中读取如此大量的字符串数据,您可以使用command line redirection 从命令行,即:

    ConsoleApplication1.exe < hugefile.txt
    

    我相信这应该可以绕过命令行长度的任何限制,尽管我不确定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-30
      • 1970-01-01
      • 2013-08-23
      • 2023-03-06
      • 2021-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多