我想用连续的数字替换一个数字,从 1 开始向上

我想用连续的数字替换一个数字,从 1 开始向上

我知道这是人们可以轻松编程的东西,但我对这些事情并不熟悉,所以我希望有一个更简单的解决方案。

我编辑了一个大型问题数据库,包括排序,但最终发现所有问题 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 中,然后使用字符[]作为分隔符执行“文本->列”。然后排序。

相关内容