将文本文件转换为数组以便在程序中永久使用

时间:2012-05-26 16:16:20

标签: c# arrays

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

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

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

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

这是我要格式化的文本文件的link

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

任何真正的幻想:按字母顺序排序数据。

5 个答案:

答案 0 :(得分:3)

使用启用正则表达式的visual studio搜索/替换,将\n替换为",",这将使您获得大部分路径,因为这是一次性的。

Find & Replace dialog

答案 1 :(得分: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"
};

答案 2 :(得分:0)

您可以将文本文件作为资源添加到您的应用程序中。然后简单地引用文本文件并用新行和回车符分割成数组。

这样可以防止IDE中的滚动条超出合理数量。

答案 3 :(得分: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文件,在您喜欢的浏览器中打开,然后将列表粘贴到该文件夹​​中,然后点击按钮。

享受。

编辑:好的,所以看起来你的文件几乎全部是换行符。我修改了代码以便记住这一点。经过测试并且有效。

答案 4 :(得分:0)

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

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

  1. 在Visual Studio中加载words.srt.txt。
  2. 位于文件顶部。
  3. 从“工具”菜单中,选择“记录临时宏”
  4. 点击结束键以转到行尾
  5. 输入逗号(,)
  6. 点击向下箭头进入下一行
  7. 按Home键转到行首
  8. 从“工具”菜单中,选择“停止录制”
  9. 现在,您可以为每一行选择工具|运行临时宏(或按Ctrl + Shift + P)。如果您只按住Ctrl + Shift + P,键盘自动重复将为您完成。
  10. 那应该花大约一分钟。然后只需在顶部添加声明,在底部添加右括号。