-1

我正在开发一个 Windows 窗体应用程序。我想知道如何读取一行,然后将其插入另一个文件,然后继续到下一行,依此类推。

现在,我正在将文件加载到 grdiview 上。这是一张图片:

在此处输入图像描述

该过程将是:

a) 读取第 1 行 -> 将该行插入另一个文件

b) 读取第 2 行 -> 将该行插入另一个文件

我的代码在这里:

private void BindDataCsv(string FilePath)
    {
        string[] Lines = File.ReadAllLines(FilePath);

        if (Lines.Length > 0)
        {
            string FirstLine = Lines[0];

            string[] HeaderLabels = FirstLine.Split(';');

            foreach (string HeaderWord in HeaderLabels)
            {
                Dt.Columns.Add(new DataColumn(HeaderWord));
            }

            for (int r = 1; r < Lines.Length; r++)
            {
                string[] DataWords = Lines[r].Split(';');

                DataRow Dr = Dt.NewRow();

                int ColumnIndex = 0;

                foreach (string HeaderWord in HeaderLabels)
                {
                    Dr[HeaderWord] = DataWords[ColumnIndex++];
                }

                Dt.Rows.Add(Dr);
            }
        }

        if (Dt.Rows.Count > 0)
        {
            dgvData.DataSource = Dt;
        }
    }
4

1 回答 1

1

好的,我承认我真的不明白您要做什么,或者为什么发布的代码还没有向您展示您的要求(除了写入文件之外,它做了所有事情,这不是比将数据行写入数据表要复杂得多),但这是一个简单的应用程序,它逐行读取文件并将这些行逐行写入另一个(单个)文件:

using(StreamWriter output = File.AppendText(@"C:\temp\output.txt")){
  foreach(string line in File.ReadLines(@"C:\temp\input.txt"))
    output.WriteLine(line);
}

这是从一个文件读取并创建 N 个新文件的代码,每个文件一行。1000 行文件变成 1000 个单行文件:

int i = 0;
foreach(string line in File.ReadLines(@"C:\temp\input.txt"))
  File.WriteAllText($"C:\\temp\\output{i++}.txt", line);

下面是一些逐行读取文件并调用 Web 服务的代码。假设已经根据 MSDN 设置了Web 服务

SomeWebServiceClient wsc = new SomeWebServiceClient();
foreach(string line in File.ReadLines(@"C:\temp\input.txt"))
  wsc.RemoteMethodThatTakesASingleStringParameter(line);
于 2019-11-14T20:36:27.007 回答