0

我有一个 1000 字的文本文件,我想格式化一个数组,这样我就可以将它放在程序中,而不是每次都读取文本文件并从中创建数组。

我试图在网上找到一个简单的服务,但似乎没有一个简单的 C# 数组存在。大多数用于 json、xml、rss 等。

所以输出会以这种方式排列单词:

{"word1","word2",...,"wordN"}

这是我要格式化的文本文件的链接。

是否有在线服务来转换文本文件或我可以编写一个简单的脚本来将文本转换为正确的数组语法?

任何真正花哨的东西:按字母顺序对数据进行排序。

4

5 回答 5

3

使用 Visual Studio 的搜索/替换并打开正则表达式,替换\n",",因为这是一次性的,这将使您大部分时间到达那里。

查找和替换对话框

于 2012-05-26T16:21:57.270 回答
1

试试这个:

var result = 
    "string[] list =\r\n{\r\n" + 
    string.Join(",\r\n", File
        .ReadLines("SSID.txt")
        .OrderBy(line => line)
        .Select(line => "    " + ToCSharpString(line))) +
    "\r\n};";

File.WriteAllText("Result.cs", result);

static string ToCSharpString(string s)
{
    return s.Contains('\\') || s.Contains('"')
        ? "@\"" + s.Replace("\"", "\"\"") + "\""
        : "\"" + s + "\"";
}

结果:

string[] list =
{
    "@home",
    "^Y",
    "<any ssid>",
    // ...
    "X-Micro",
    "yale wireless",
    "ZyXEL"
};
于 2012-05-26T16:20:21.377 回答
0

您可以将文本文件作为资源添加到您的应用程序。然后简单地引用文本文件并通过换行符和回车符将其拆分为一个数组。

这将防止将 IDE 中的滚动条扩展到超出合理数量。

于 2012-05-26T16:22:27.283 回答
0
<script type='text/javascript'>
function convertIt(str) {
var array=str.split('\n');
array.sort(); //If you want to sort alphabetically; remove if not
document.getElementById('output').innerHTML='{"'+array.join('","')+'"}';
}
</script>

<textarea id='text'>
</textarea>
<div id='output'></div>
<input type='button' onclick='convertIt(document.getElementById("text").value)' value='Click me!'>

将以上内容另存为 .html 文件,在您喜欢的浏览器中打开它,然后将您的列表粘贴到那里并单击按钮。

享受。

编辑:好的,所以看起来你的文件几乎完全是换行符。考虑到这一点,我已经修改了代码。经过测试,它可以工作。

于 2012-05-26T16:23:51.790 回答
0

我假设该文件的结构是每行一个单词。

首先,在命令行上对其进行排序: sort <words.txt >words.srt.txt

  1. 在 Visual Studio 中加载 words.srt.txt。
  2. 定位到文件的顶部。
  3. 从工具菜单中,选择记录临时宏
  4. 按 End 键转到行尾
  5. 输入逗号 (,)
  6. 点击向下箭头转到下一行
  7. 按 Home 键转到行首
  8. 从工具菜单中,选择停止录制
  9. 现在,您可以为每一行选择工具|运行临时宏(或按 Ctrl+Shift+P)。如果您只是按住 Ctrl+Shift+P,键盘自动重复将为您完成。

这应该需要你大约一分钟。然后只需在顶部添加声明,在底部添加右大括号。

于 2012-05-26T16:30:50.027 回答