web-dev-qa-db-ja.com

C#で.txtファイルを読み書きするにはどうすればいいですか?

たとえば、次のようなTXTファイルがあります。

12 345 45
2342 234 45 2 2 45345
234 546 34 3 45 65 765
12 23 434 34 56 76 5
 _

すべての数字の間にコンマを挿入し、各行の始まりに左ブレースを追加し、各行の最後まで右ブレースを追加したいです。編集後、それは読むべきです:

{12, 345, 45}
{2342, 234, 45, 2, 2, 45345}
{234, 546, 34, 3, 45, 65, 765}
{12, 23, 434, 34, 56, 76, 5}
 _

どうすればいいのですか?

9
George Powell

楽しさと利益のためのLINQを追加しました(最適化のための部屋)。

System.IO.File.WriteAllLines(
    "outfilename.txt",
    System.IO.File.ReadAllLines("infilename.txt").Select(line =>
        "{" +
        string.Join(", ",
            line.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)
        ) + "}"
    ).ToArray()
);
 _
19
aanund

このようなもの:(テストされていません)

string filename = @"c:\yourfilename.txt";
StringBuilder result = new StringBuilder();

            if (System.IO.File.Exists(filename))
            {
                using (StreamReader streamReader = new StreamReader(filename))
                {
                    String line;
                    while ((line = streamReader.ReadLine()) != null)
                    {
                        string newLine = String.Concat("{", line, "}", Environment.NewLine);
                        newLine = newLine.Replace(" ", ", ");
                        result.Append(newLine);
                    }
                }
            }

using (FileStream fileStream = new FileStream(filename , fileMode, fileAccess))
            {
                StreamWriter streamWriter = new StreamWriter(fileStream);
                streamWriter.Write(result);
                streamWriter.Close();
                fileStream.Close();
            }
 _
13
Mark Redman

あなたはあなたのためにそれを提供するように人々に尋ねる代わりに、あなたは最初に最初に仕事をするべきです。ファイルの読み/書き込みについては、ここに行ってください。

//write      
FileStream fs = new FileStream("file_name", FileMode.Create);
StreamWriter w = new StreamWriter(fs, Encoding.UTF8);
w.WriteLine("text_to_write");
w.Flush();
w.Close();
fs.Close();

//read
fs = new FileStream("file_name", FileMode.Open);
StreamReader r = new StreamReader(fs, Encoding.UTF8);
Console.WriteLine(r.ReadLine());
r.Close();
fs.Close();
 _
5
cw22
string [] lines = File.ReadAllLines("input.txt");
var processed = lines.Select(line => string.Format("{{{0}}}", line.Replace(" ", ", ")));
File.WriteAllLines("output.txt",processed.ToArray());
 _
3
Mehmet Aras

編集してスライニングを変更する方法を追加します。 (テストされていませんが、私はそれがちょうど元に働くでしょう。

    StreamReader sr = new StreamReader("path/to/file.txt");
    StreamWriter sw = new StreamWriter("path/to/outfile.txt");
    string sLine = sr.ReadLine();
    for (; sLine != null; sLine = sr.ReadLine() )
    {
        sLine = "{" + sLine.Replace(" ", ", ") + "}";
        sw.WriteLine(sLine);
    }
 _
3
jb.

各行を読んでください。

文字列の前後にブラケットを追加します

その後、スペースを置き換えます ""、 ""、 "(カンマとスペース)

3
waqasahmed