【问题标题】:How to add formatting data to text output from c program?如何将格式化数据添加到 c 程序的文本输出?
【发布时间】:2011-07-17 16:17:20
【问题描述】:

我有一个命令行 C 程序 (DOS/Windows),它生成一个 .txt 文件的多个记录的十六进制转储。 我正在寻找一种方法来强调某些价值观而不诉诸 ascii-art。

是否有现成的查看程序和字节序列的组合可以让我突出显示/加粗/下划线某些文本块?如果我可以通过简单的fprintffwrite 调用来生成它,则可以加分。

我想 HTML 是一种选择,但我希望有更简单的东西,类似于 ANSI 转义码的东西。

有什么想法吗?


如果 HTML 是最好的,那么生成有效文档所需的最小标题/尾部是多少?
(该死的 Jim,我是嵌入式程序员,而不是网页设计师)

【问题讨论】:

  • HTML 可能是最简单的,抱歉。 ANSI 仅在直接输出到命令窗口时有效,我认为现代版本的 Windows 根本不支持它。

标签: c text formatting highlighting


【解决方案1】:

也许有点矫枉过正,但我​​有时会为此目的使用 XML+XSLT。 只需用您选择的一些标签围绕您的数据块,例如:

<blocktype1>...</blocktype1>
<blocktype2>...</blocktype2>

然后创建一个简单的 XSL 样式表,将您转储的数据转换为 html。

好处:

  • 不会使用格式化特定代码向您的 C 代码发送垃圾邮件
  • 无需运行原始代码即可更改格式
  • 允许使用 XMLNotepad(免费)或 XmlSpy 等工具浏览生成的文件

【讨论】:

    【解决方案2】:

    我主要在 Linux/Unix 系统上工作,所以我不知道最新版本的 Windows/DOS CMD shell 对 ANSI 转义码有什么样的支持。我同意 HTML 可能是您最好的选择。

    W3C 的最小 HTML 文档

    &LT;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&GT; HTML 文档 HTML 文档的正文 正文>
    【解决方案3】:

    如果您不喜欢使用 HTMl,您可以使用 rtf 格式。您可以使用 fprintf 或 fwrite 调用来生成它。检查维基百科中的此链接,它包含 rtf http://en.wikipedia.org/wiki/Rich_Text_Format 的示例

    【讨论】:

    • 有趣的想法,我去看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多