多行数据 我想一行一行的读取,然后把一行再分成几块存放到数组中 添加或者更新
大神看我一行一行着读取 做的对不对 合理么 我自己运行一下午了 改了删删了该 总觉得不对
protected void button_Click(object sender, EventArgs e)
{
DirectoryInfo di = new DirectoryInfo(@"C:\Users\123\Desktop\project\ConsoleApplication2\ConsoleApplication2\bin\Debug");
foreach (var fi in di.GetFiles("*.txt", SearchOption.AllDirectories))
{
using (StreamReader sr = new StreamReader(fi.FullName, System.Text.Encoding.Default))
{
string line;
while ((line = sr.ReadLine()) != null)
{
string[] str = line.Split(':', '\n');
if (str[5].ToString() == "1")
{
if (str[1] == null)
{
//添加
}
else
{
//更新
}
------解决思路----------------------
你测试下来,功能实现了么?单独就你描述的这个功能,代码看起来是满足需要的。
有一些细节需要注意
DirectoryInfo di = new DirectoryInfo(@"C:\Users\123\Desktop\project\ConsoleApplication2\ConsoleApplication2\bin\Debug");
可以改成
DirectoryInfo di = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);//程序启动路径
另外,txt最好单独放一个文件夹。
str数组长度是否大于等于6,这个没判断,可能出现str[5]超出索引异常等等
------解决思路----------------------
你只要都读出来,放到string或List<string>里
剩下如何循环,如何判断,都跟txt本身没啥关系
既然不能保证文件里的数据所有行的列数都一致,那么必然是需要判断一下,以免索引溢出程序崩溃
------解决思路----------------------
这个问题其实和如何读txt无关的
这是对数组操作需要注意的问题
在不确定数组元素个数的情况下,不要胡乱使用下标访问
每个地方都应该做越界判断