-1

次の 2 つのファイルがあります。最初の file1.txt -

 4
 suzan w kieth
 Terry s Greenberg
 Ron   q xxx
 Tu    L ip

2 番目のファイル file2.txt -

2
Lily s great
Rowina q Joseph

両方のファイルの最初のレコードは、そのファイル内のレコード数であり、両方のファイルの形式はまったく同じです。

次のレコードを持つ3番目のファイルが必要です-

6
suzan w kieth
Terry s Greenberg
Ron   q xxx
Tu    L ip
Lily s great
Rowina q Joseph

これらのファイルをマージするにはどうすればよいですか? またはこれへの最速の方法は?

ありがとう。

4

2 に答える 2

1

文字列を int に変換する

TextReader.ReadLine

TextReader.WriteLine

using System;
using System.IO;

namespace csharp_station.howto
{
    class TextFileReader
    {
        static void Main(string[] args)
        {
            TextReader tr1 = new StreamReader("file1.txt");
            TextReader tr2 = new StreamReader("file2.txt");
            TextWriter tw = new StreamWriter("result.txt");

            int count1 = Convert.ToInt32(tr1.ReadLine());
            int count2 = Convert.ToInt32(tr2.ReadLine());
            tw.WriteLine(count1 + count2);

            for(int i = 0; i < count1; i++)
            {
                tw.WriteLine(tr1.ReadLine());
            }

            for(int i = 0; i < count2; i++)
            {
                tw.WriteLine(tr2.ReadLine());
            }

            tr1.Close();
            tr2.Close();
            tw.Close();
        }
    }
}
于 2012-06-07T20:33:22.617 に答える
0

The easiest way is using Enumerable.Concat:

var file1Lines = System.IO.File.ReadAllLines(file1Path);
var file2Lines = System.IO.File.ReadAllLines(file2Path);
int totalCount = int.Parse(file1Lines.First()) + int.Parse(file2Lines.First());
var file3FirstLine = new[] { totalCount.ToString() };
var file3Lines = file3FirstLine.Concat(file1Lines.Skip(1))
                               .Concat(file2Lines.Skip(1));
System.IO.File.WriteAllLines(file3Path, file3Lines);
于 2012-06-07T20:44:13.580 に答える