重新排序答案(正确答案列表)的最简单方法

重新排序答案(正确答案列表)的最简单方法

我有很多这样的答案:

1.A;8.C;15.E;22.B
2.B;9.D;16.A;23.C
3.C;10.E;17.B;24.D
4.D;11.A;18.C;25.E
5.E;12.B;19.D;26.A
6.A;13.C;20.E;27.B
7.B;14.D;21.A;28.C

我正在尝试找到最简单的方法来自动将它们重新排序成这样的:

1.A
2.B
3.C
4.D
5.E
6.A
7.B
8.C
9.D
10.E
11.A
12.B
13.C
14.D
15.E
16.A
17.B
18.C
19.D
20.E
21.A
22.B
23.C
24.D
25.E
26.A
27.B
28.C

我不会使用任何编程语言。我一直尝试在记事本、写字板、Microsoft Word 和 Notepad++ 中使用“查找-替换”,并试图想出可以用 AutoHotKey 做些什么。但我想不出任何可行的办法。

任何帮助都将不胜感激。谢谢!

答案1

使用 Word 2010,

  1. 按 Ctrl-H 将所有“;”替换为“^p”
  2. 按 Ctrl-A 选择全部
  3. 单击“主页”选项卡上的排序图标(我不知道这个快捷键)。在“排序文本”对话框中,单击“选项...”按钮。在“分隔字段”处,选择“其他:”并输入“。”,然后单击“确定”返回。在“排序依据”处,选择“字段 1”。在“类型:”处,选择“数字”。单击“确定”执行排序。

或者,将其记录为宏并为其分配热键。

答案2

我无法接触任何编程语言。

这不是真的!你有Windows 脚本宿主,它允许你编写代码VBScript、JavaScript 和 VBA电源外壳它是一种功能强大的脚本语言,能够利用.Net。

这是 PowerShell 解决方案。将其另存为SortAnswers.ps1并在 PowerShell 会话中运行。

Param
(
    [Parameter(Mandatory = $true)]
    [string]$InPath, # Input file

    [string]$OutPath # Output file, optional
)

# Natural sort implementation:
# https://stackoverflow.com/questions/5427506/how-to-sort-by-file-name-the-same-way-windows-explorer-does
$ToNatural = {[regex]::Replace($_, '\d+', { $args[0].Value.PadLeft(20) })}

$Sorted = Get-Content -Path $_ | # Read input file, line by line
    ForEach-Object {$_ -split ';'} | # Split every line by ';'
        Sort-Object $ToNatural # Sort resulting items and assign them to $Sorted variable

# If OutPath parameter specified
if($OutPath)
{
    # Save to file
    $Sorted | Set-Content -Path $OutPath
}
else
{
    # Display on screen
    $Sorted
}

例子

  • 读取Answers.txt当前目录,将排序后的答案保存为Answers_sorted.txt

     .\SortAnswers.ps1 -InPath .\Answers.txt -OutPath .\Answers_sorted.txt
    
     or
    
     .\SortAnswers.ps1 .\Answers.txt .\Answers_sorted.txt
    
  • 读取Answers.txt当前目录,在屏幕上显示排序后的答案:

     .\SortAnswers.ps1 -InPath .\Answers.txt
    
     or
    
    .\SortAnswers.ps1 .\Answers.txt
    

笔记

你必须允许执行 PowerShell 脚本第一的:

PowerShell 的默认执行策略称为“受限”。在此模式下,PowerShell 仅作为交互式 shell 运行。它不运行脚本,并且仅加载由您信任的发布者签名的配置文件。如果您收到令人讨厌的红色错误,最可能的原因是您正在尝试运行未签名的脚本。

要将其更改为不受限制,请从管理 PowerShell 运行以下命令:

Set-ExecutionPolicy Unrestricted

参考

答案3

  • 我还没有足够的积分来发表评论,所以请大家不要讨厌和投反对票。我正在努力回馈社区。

“最简单的方法”
我注意到您有 MS Word,因此可以毫不夸张地假设您也有 MS Excel。


复制文本并将其按原样粘贴到记事本中将其保存到桌面,例如 a.txt

然后启动 MS Excel
在此空白表上导航至菜单;数据 -> 导入外部数据 -> 导入数据(导航到桌面并选择 a.txt)。
然后单击“打开”。

文本导入向导现已打开。
选择单选按钮'分隔符', 单击“下一步”。
选择分隔符框,'分号'。
单击“完成”。然后单击“确定”接受。

现在您有几列数据,但按所需顺序从上到下排列。在您的示例中,您将有 4 列。A 列为 1-7,B 列为 8-14,等等。您现在可以复制每个相邻列并将其粘贴在 A 列下以堆叠数据。只需一分钟即可完成。


希望这可以帮助!

  • 我认为这是最简单的方法,因为你提到你“无法使用编程语言”,也就是说你不是程序员。作为一名程序员,你可以轻松下载许多编译器中的任何一个,并用几种语言编写排序算法。但那将是编写程序。

相关内容