winforms 如何垂直或按列读取文本文件的数据

u0njafvf  于 2023-01-17  发布在  其他
关注(0)|答案(5)|浏览(159)

我们如何逐列读取文本文件。
验证码:我可以使用**text.split(' ')**读取行方式的数据,但是如何读取列方式的文件呢?假设一个文件包含多个行和列,但是我可以水平读取数据/值。下面的代码就是我可以执行的!请参见下面的代码:-

private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {

        string text = "";
        text = textBox1.Text;

        string[] arr = text.Split(' ');
        textBox2.Text = arr[5];
        textBox3.Text = arr[8];
    }

    private void button3_Click(object sender, EventArgs e)
    {

        string file_name = "c:\\Excel\\count.txt";
        string txtline = "";

        System.IO.StreamReader objreader;
        objreader = new System.IO.StreamReader(file_name);

        do
        {
            txtline = txtline + objreader.ReadLine() + "\r\n";
            txtline = txtline + objreader.ReadToEnd() + "";
            this.textBox1.Text = "subzihut";

        }
        while (objreader.Peek() != -1);
        textBox1.Text = txtline;
        objreader.Close();

        }

    private void button2_Click(object sender, EventArgs e)
    {
     textBox4.Text = textBox2.Text + " " + textBox3.Text;
    }
    }
    }
wqlqzqxt

wqlqzqxt1#

一个文本文件包含一系列字符,由换行符和其他可能用作分隔符的字符(通常是逗号或分号)分隔。
当你读一个文件的时候,你只需要读这个字符串。有一些帮助函数可以逐行读这样的文件(使用换行符作为分隔符)。
在纯.Net中没有逐列读取的方法。
因此,您应该:
1.逐行读取文件
1.在分隔符处使用string.Split()将每行拆分为字段/列
1.仅访问感兴趣的列

dtcbnfnu

dtcbnfnu2#

您可以简单地逐行读取文件,拆分行并执行任何您想要的操作。

var lines = File.ReadLines(@"c:\yourfile.txt");
foreach(var line in lines)
{
    var values = line.Split(' ');
}
chy5wohz

chy5wohz3#

public string getColumnString(int columnNumber){

    string[] lines = System.IO.ReadAllLines(@"C:\inputfile.txt");
    string stringTobeDisplayed = string.Empty;

    foreach(string line in lines) {
        if(columnNumber == -1){ //when column number is sent as -1 then read full line
           stringTobeDisplayed +=  line +"\n"
        }
        else{  //else read only the column required
            string [] words = line.Split();
            stringTobeDisplayed += word[columnNumber] +"\n"
       }
    }

  return stringTobeDisplayed;
}
3qpi33ja

3qpi33ja4#

也许这对你有帮助:

public static void ReadFile(string path)
    {
        List<string> Col1 = new List<string>();
        List<string> Col2 = new List<string>();
        List<string> Col3 = new List<string>();
        using (StreamReader sr = new StreamReader(path))
        {
            while (sr.EndOfStream)
            {
                string header = sr.ReadLine();
                var values = header.Split(' ');
                Col1.Add(values[0]);
                Col2.Add(values[1]);
                Col3.Add(values[2]);
            } 
        }
    }
l3zydbqr

l3zydbqr5#

的确,有时候你只是不知道从哪里开始。这里有一些指点。
1.您必须读入整个文件,可能需要使用类似StreamReader的命令。
1.可以将第一行解析为列名,使用StreamReader.ReadLine()获取第一行,然后对其进行一些简单的字符串解析。
1.您需要创建某种类/对象来存储和访问数据。
1.有了列名之后,继续将以下行解析为适当的数组。
这里有个粗略的想法

using(StreamReader sr = new StreamReadeR("C:\\my\\file\\location\\text.csv"))
{
    string header = sr.ReadLine();
    List<string> HeaderColumns = new List<string>(header.split(" ", StringSplitOptions.RemoveEmptyEntires));
    myModelClass.Header = HeaderColumns;

等等。
您还可以考虑创建某种字典,通过标题名称和索引访问列。

相关问题