【发布时间】:2012-07-14 07:56:26
【问题描述】:
这可能是一项简单的任务,但目前我真的不知道如何以简单的方式做到这一点。 我有以下情况,我有一个用 COFFEE 编写的脚本,COFFEE 是 3D 程序 Cinema 4D 的脚本语言。 现在此脚本正在将以下格式的位置数据写入文本文件(在这种情况下为 rtf,但也可以是 .txt)。
0 0.0 471.2 0.0
1 0.0 470.5 0.0
2 0.0 468.8 0.0
3 0.0 465.9 0.0
4 0.0 461.9 0.0
5 0.0 456.8 0.0
6 0.0 450.5 0.0
7 0.0 443.2 0.0
8 0.0 434.8 0.0
9 0.0 425.2 0.0
框架、X、Y、Z。
现在我需要做的是把这个位置数据转换成这种格式:
Transform Position
Frame X pixels Y pixels Z pixels
0 0.0 471.2 0.0
1 0.0 470.5 0.0
2 0.0 468.8 0.0
End of Keyframe Data
这里看不到,但这里没有空格,所有内容都用制表符隔开(也许将其复制到记事本以真正看到制表符)。重要的是我在每个数字之间都有制表符,可以有空格,但我每次都需要一个制表符。 所以最重要的部分是,我如何从第一个数据集中获取这些数字,并让程序在每个数字之间添加一个 \t?
我尝试在脚本中执行此操作,但如果我使用制表符而不是位置之间的多个空格,则脚本会失败。 我搜索了很多,但找不到任何好的解决方案。 我熟悉 C++ 和一个小批处理脚本,但我对每个解决方案都很满意,即使我必须学习另一种语言的基础知识。
我试图在 C++ 中找到一种方法,但我想出的方法无法格式化 n 行,而且每一行都非常复杂。帧数/行数每次都不同,所以我从来没有固定的行数。
【问题讨论】:
-
第一组数据如何转化为第二组数据?现在看起来您正在使用刚刚制作的东西作为示例,因为这两个集合似乎代表的不是同一件事。
-
不,它们是脚本生成的实际数据。第二组是手动制作的,但格式是我需要它在另一个程序中处理它的格式。不要对 4.00002 帧数感到困惑,这与我选择的帧速率有关。我需要的只是每行的 4 个数字,以便在实际数字之前有一个制表符。含义: Tab 1 Tab 2 Tab 3 Tab 4 与第二个数据集中位置数据之前的文本相同。没有空格,所有内容都只有制表符。
-
我编辑了第二组,现在应该更清楚了:)
标签: c++ windows file text formatting