我有一个包含以下C#阅读txt文件和数据存储在格式化阵列
Name address phone salary
Jack Boston 923-433-666 10000
所有字段由空格分隔的文本文件。
我想写一个C#程序,这个程序应该读取这个文本文件,然后将其存储在格式化数组中。
我的数组如下:
address
salary
当过我试图在谷歌我得到的是如何阅读和写在C#中的文本文件的样子。
非常感谢您的时间。
我有一个包含以下C#阅读txt文件和数据存储在格式化阵列
Name address phone salary
Jack Boston 923-433-666 10000
所有字段由空格分隔的文本文件。
我想写一个C#程序,这个程序应该读取这个文本文件,然后将其存储在格式化数组中。
我的数组如下:
address
salary
当过我试图在谷歌我得到的是如何阅读和写在C#中的文本文件的样子。
非常感谢您的时间。
可以使用File.ReadAllLines方法将文件加载到数组中。然后,您可以使用for循环遍历这些行,并使用字符串类型的Split方法将每行分隔到另一个数组中,并将这些值存储在格式化数组中。
喜欢的东西:
static void Main(string[] args)
{
var lines = File.ReadAllLines("filename.txt");
for (int i = 0; i < lines.Length; i++)
{
var fields = lines[i].Split(' ');
}
}
非常感谢你! – 2012-03-19 20:36:19
有帮助,谢谢! – 2015-11-04 15:18:04
不要重新发明轮子。可以使用例如fast csv reader,您可以指定您需要的delimeter
。
互联网上有很多其他人都喜欢这样,只要搜索并选择一个适合您的需求。
这个答案假设你不知道有多少空白是在给定的线每个字符串之间。
// Method to split a line into a string array separated by whitespace
private string[] Splitter(string input)
{
return Regex.Split(intput, @"\W+");
}
// Another code snippet to read the file and break the lines into arrays
// of strings and store the arrays in a list.
List<String[]> arrayList = new List<String[]>();
using (FileStream fStream = File.OpenRead(@"C:\SomeDirectory\SomeFile.txt"))
{
using(TextReader reader = new StreamReader(fStream))
{
string line = "";
while(!String.IsNullOrEmpty(line = reader.ReadLine()))
{
arrayList.Add(Splitter(line));
}
}
}
你在哪里困惑?你有什么尝试?最难的部分可能会加载文件。 – Jetti 2012-03-19 20:16:33
如果你能控制它,我认为空间不会产生很好的分隔符。你可能想改变它。 – CAbbott 2012-03-19 20:16:49
我能够读取文件,但不知道加载...因为加载文件我想第二(地址)和第四字段(工资)。 – 2012-03-19 20:18:51