Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何逐行读取file.cfg并将其放入文本框_C# - Fatal编程技术网

C# 如何逐行读取file.cfg并将其放入文本框

C# 如何逐行读取file.cfg并将其放入文本框,c#,C#,我想显示文件的内容。 我试过了,它跑了。但不是我想要的 我的档案是这样的 a="1" b="2" c="3" 行=行??File.ReadAllLines(“D:\\File.cfg”); if(索引

我想显示文件的内容。 我试过了,它跑了。但不是我想要的

我的档案是这样的

a="1"
b="2"
c="3"
行=行??File.ReadAllLines(“D:\\File.cfg”);
if(索引<行长度)
textbox1.Text=行[index++];
Text=lines[index++];
textbox3.Text=行[index++];

我希望输出是“1”、“2”或“3”。但实际输出是a=“1”、b=“2”和c=“3”

以下是一个使用非常基本C#语法的非常基本的示例。我假设您是C#新手,因此这将更容易理解。C#有许多高级表达式,可以使解析的解决方案非常小,但对于只懂少量C#的人来说非常难以理解。因此,这里是一个简单的示例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;

namespace Readand_display
{
    class Program
    {
        static void Main(string[] args)
        {
            Example2();
            Example1();
        }

        private static void Example2()
        {
            string TextBox1 = null;
            string TextBox2 = null;
            string TextBox3 = null;

            string[] lines = System.IO.File.ReadAllLines("file.cfg");
            char[] delimiter = { '=', '"' };

            if (lines.Count()>0)
            {
                 TextBox1 = lines[0].Split(delimiter)[2];
                 TextBox2 = lines[1].Split(delimiter)[2];
                 TextBox3 = lines[2].Split(delimiter)[2];
            }
            Console.WriteLine("TextBox1 = {0}, TextBox2 = {1}, TextBox3 = {2}", TextBox1, TextBox2, TextBox3); // show all the values in the line separated by comma
            Console.ReadKey();

        }

        private static void Example1()
        {
            string[] lines = System.IO.File.ReadAllLines("file.cfg");
            char[] delimiter = { '=', '"' };

            List<string> values = new List<string>();    // To store the values 1,2,3 
            foreach (var item in lines)
            {
                List<string> line = item.Split(delimiter).ToList();
                Console.WriteLine("{0}, {1}, {2}", line[0], line[1], line[2]); // show all the values in the line separated by comma
                values.Add(line[2]);
            }

            foreach (var item in values)  // this is just to show your the values.
            {
                Console.WriteLine(item);    // show just the 1,2,3 values
            }

            /*****************************
             *  HERE YOU WOULD ASSIGN THE VALUES TO WHAT EVER OBJECT TYOU LIKE.
             *  FOR EXAMPLE
             *  "textbox1.text = values[0];
             *  "textbox2.text = values[1];
             *  "textbox3.text = values[2];
             *  ******************************/
            Console.ReadKey();
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.Windows.Controls;
名称空间读取和显示
{
班级计划
{
静态void Main(字符串[]参数)
{
例2();
例1();
}
私有静态void示例2()
{
字符串TextBox1=null;
字符串TextBox2=null;
字符串TextBox3=null;
string[]lines=System.IO.File.ReadAllLines(“File.cfg”);
字符[]分隔符={'=','''};
如果(lines.Count()>0)
{
TextBox1=行[0]。拆分(分隔符)[2];
TextBox2=行[1]。拆分(分隔符)[2];
TextBox3=行[2]。拆分(分隔符)[2];
}
Console.WriteLine(“TextBox1={0},TextBox2={1},TextBox3={2}”,TextBox1,TextBox2,TextBox3);//显示以逗号分隔的行中的所有值
Console.ReadKey();
}
私有静态void示例1()
{
string[]lines=System.IO.File.ReadAllLines(“File.cfg”);
字符[]分隔符={'=','''};
List values=new List();//存储值1,2,3
foreach(行中的var项目)
{
列表行=item.Split(分隔符).ToList();
WriteLine(“{0},{1},{2}”,第[0]行,第[1]行,第[2]行];//显示以逗号分隔的行中的所有值
添加(第[2]行);
}
foreach(values中的var项)//这只是为了显示您的值。
{
Console.WriteLine(item);//仅显示1,2,3值
}
/*****************************
*在这里,您可以将值指定给您喜欢的对象。
*比如说
*“textbox1.text=值[0];
*“textbox2.text=值[1];
*“textbox3.text=值[2];
*  ******************************/
Console.ReadKey();
}
}
}
string[]line=File.ReadAllLines(“D:\\File.cfg”);
if(索引<行长度)
{     
textbox1.Text=新字符串(行[index++]。其中(x=>Char.IsDigit(x)).ToArray();
textboxt2.Text=新字符串(行[index++]。其中(x=>Char.IsDigit(x)).ToArray();
textbox3.Text=新字符串(行[index++]。其中(x=>Char.IsDigit(x)).ToArray();
}

此代码循环文件中的每一行。它在等号(=)上拆分每一行。我们感兴趣的是结果数组的第二个元素。然后,索引1的第二个元素被修剪掉双引号并添加到列表中。列表中的元素随后显示在文本框中

private void Button2_Click(object sender, EventArgs e)
    {
        string[] lines = File.ReadAllLines(@"D:\\file.cfg");
        List<string> TextBoxValues = new List<string>();
        foreach(string line in lines)
        {
           var stringParts = line.Split('=');
            TextBoxValues.Add(stringParts[1].Trim('"'));
        }
        textBox1.Text = TextBoxValues[0];
        textBox2.Text = TextBoxValues[1];
        textBox3.Text = TextBoxValues[2];
    }
private void按钮2\u单击(对象发送者,事件参数e)
{
字符串[]行=File.ReadAllLines(@“D:\\File.cfg”);
List TextBoxValues=新列表();
foreach(行中的字符串行)
{
var stringParts=line.Split('=');
TextBoxValues.Add(stringParts[1].Trim(“”);
}
textBox1.Text=TextBoxValues[0];
textBox2.Text=TextBoxValues[1];
textBox3.Text=TextBoxValues[2];
}

非常好而且干净。我喜欢这个解决方案。但是对于新手来说,C#很难。但是它很好。伙计,我是如何让这个代码读取文件dinamic的?我的意思是,我可以选择我想要的文件。
string[] lines = File.ReadAllLines("D:\\file.cfg");    
            if (index < lines.Length)    
            {     
                textbox1.Text = new String(lines[index++].Where(x => Char.IsDigit(x)).ToArray());    
                textboxt2.Text = new String(lines[index++].Where(x => Char.IsDigit(x)).ToArray());    
                textbox3.Text = new String(lines[index++].Where(x => Char.IsDigit(x)).ToArray());        
            }
private void Button2_Click(object sender, EventArgs e)
    {
        string[] lines = File.ReadAllLines(@"D:\\file.cfg");
        List<string> TextBoxValues = new List<string>();
        foreach(string line in lines)
        {
           var stringParts = line.Split('=');
            TextBoxValues.Add(stringParts[1].Trim('"'));
        }
        textBox1.Text = TextBoxValues[0];
        textBox2.Text = TextBoxValues[1];
        textBox3.Text = TextBoxValues[2];
    }