我知道这是人们可以轻松编程的东西,但我对这些事情并不熟悉,所以我希望有一个更简单的解决方案。
我编辑了一个大型问题数据库,包括排序,但最终发现所有问题 ID 都混在一起了。
我正在尝试在 Notepad++ 中执行此操作,但欢迎提出任何其他建议。我想知道是否有办法搜索字符串(例如“问题 [任意数字]”)并将数字先替换为 1,然后替换为 2,等等。
为了澄清起见,以下是一个问题:
TriviaBot_Questions[3]['Question'][63] = "Acronyms: What does WTT stand for?";
TriviaBot_Questions[3]['Answers'][63] = {"Want To Trade"};
TriviaBot_Questions[3]['Category'][63] = 7;
TriviaBot_Questions[3]['Points'][63] = 1;
TriviaBot_Questions[3]['Hints'][63] = {};
并且下一个问题,就像现在一样,后面不是 64。它可能是 245 或 1029,不管它是哪个数字,我都希望它基本上被“上一个数字 + 1”替换。
答案1
嗯,使用 Emacs 相当容易,但是 Emacs 学习起来有点困难。
你可以在这里得到它:http://www.gnu.org/software/emacs/.它是完全免费的。
在继续之前请先备份文件,以防万一,因为撤消所有内容可能会很烦人,而且备份永远不会有坏处。
以下是如何按一个键一个键地完成您想要的操作。作为参考,C 表示 control,破折号表示必须同时按下(例如 control+x),而空格表示您放弃之前的操作。因此 Cx Cf 表示您先按下 control+x,然后按下 control+f。
打开 Emacs 并打开您拥有的文件。如果没有文件/编辑...等栏,您可以通过 Cx Cf(control+x 后跟 control+f)并输入文件路径来打开文件。
然后按 Cx (,即 control+x 后跟 shift+9。这将开始记录您的击键,您可以稍后重复执行。
现在按 Cs 并输入“Questions”,然后按两次 Cf 并按 C-backspace。现在按 f3。数字应该被 0 替换。如果您希望多行具有相同的数字,请复制您刚刚获得的数字,方法是按 C-space,然后按 Cb,然后按 Mw (alt+w)。
复制数字后,您可以再次使用 Cs,按两次以转到下一个“问题”。在这里再次按两次 Cf,然后按 C-backspace,但现在键入 Cy 以粘贴您复制的数字。根据需要重复此操作以查看一个问题中的所有数字。每次您在单个问题中重复此操作时,请在其后键入 My。
完成第一个问题后,所有数字都替换为 0,现在就可以完成宏的录制。输入 Cx )(control-x 后跟 shift-0,与之前一样)。
如果在任何时候您犯了错误并想要取消并重新启动,Cg 会取消,C-_(control + shift + -)会撤消。
现在输入 Cu 0 Cx e。
如果有效,您可以通过输入 Cx Cs 来保存更改。
这样做的目的是创建一个键盘宏来替换数字,并使用每次增加的计数器(由 f3 创建)重复执行它。
如果您设法完成这项工作(我在您的示例中做到了),请考虑学习如何使用 Emacs——打开 Emacs 时可以访问一个非常好的教程。学习需要一点努力,但值得。
答案2
我不知道有什么工具可以做到这一点,但你可能会发现最好像这样编写代码
x = 0;
Questions[3][++x] = 'New Question';
Questions[3][ x] = '------------';
Questions[3][ x] = 'A: Answer, B: Answer, C: Answer';
Questions[3][++x] = 'New Question';
Questions[3][ x] = '------------';
Questions[3][ x] = 'A: Answer, B: Answer, C: Answer';
或者更好的解决方案是从文本文件或数据库中读取,这样问题就不会与编译的应用程序相关。
但是,如果您想解决眼前的紧急问题,我会将问题文件放入 Excel 中,然后使用字符[
和]
作为分隔符执行“文本->列”。然后排序。