我有一个1000个文本文件,我希望读取单个到单个,每个文件有一个4700000记录,例如文件中的一个是:
43266200 6819 43295200 1393/05/23 14:28:45 113 1
我希望保存到sql server中,例如:
field1:43266200
field2:6819
我该怎么做?
答案 0 :(得分:2)
var seperators = " ".ToCharArray();
foreach(var line in File.ReadLines(path))
{
var fields = line.Split(seperators, StringSplitOptions.RemoveEmptyEntries);
//now you have fields[0] and fields[1], save them in your database
}
答案 1 :(得分:1)
这可能对您有所帮助
var message ="43266200 6819 43295200 1393/05/23 14:28:45 113 1";
//Split your data into pieces
var messages=message.Split(' ').Where( o => !string.IsNullOrEmpty(o));
var i=0;
foreach(var item in messages)
{
// do whatever you wanna to do with pieces
Console.Write( "field {0}:{1}",++i,item);
}
答案 2 :(得分:1)
如果您正在从文件中读取文本,并且可以合理地假设空格字符将是您唯一的分隔符,则应使用String.Split()
方法对每行进行标记:
// instantiate FileInfo of your file as yourFile
foreach (string line in yourFile.ReadLines())
{
string[] lineTokens = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
}
String.Split()
允许您根据您在第一个参数中提供的char
分隔符将任何字符串分隔为子串的字符串[]。上面代码中的第二个参数是StringSplitOptions枚举中的值之一,其值为None(提供所有字符串)或RemoveEmptyEntries(不返回任何仅由分隔符组成的子字符串)。
然后,从那里,您可以遍历lineTokens并从每个标记组装一个对象,或者您可以组装一个SQL查询,其中任何给定的索引对应于您要添加的行中的列。