9

プログラムでテキスト ファイルをすべての文字を 1 つずつ読み取り、二重引用符 (") が見つかった場合は常に、その逆コンマの前にセミコロンを追加します。たとえば、テキスト ファイルに次のような段落があります。

これは、非常に多くの文字といくつかの名前と日付を含む段落です。私の名前「サム」私は「12:00」「正午」に生まれました。私は「どこでも」住んでいます。

今、私は出力を次のようにしたい:

これは、非常に多くの文字といくつかの名前と日付を含む段落です。私の名前;「サム;」私は ;"12:00;" に生まれました ;"昼;"。私はどこにでも住んでいます。.

ファイルストリームを使用してファイルを開き、文字を読み取り、引用符が見つかった場所にセミコロンを追加する必要があります。出力は textbox1.Text と等しくなるはずです。

これは私のコードです:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            
            char ch;
            int Tchar = 0;
            StreamReader reader;
            reader = new StreamReader(@"C:\Users\user1\Documents\data.txt");
            do
            {
                ch = (char)reader.Read();
                Console.Write(ch);
                if (Convert.ToInt32(ch) == 34)
                {
                    Console.Write(@";");
                }
                Tchar++;
            } while (!reader.EndOfStream);
            reader.Close();
            reader.Dispose();
            Console.WriteLine(" ");
            Console.WriteLine(Tchar.ToString() + " characters");
            Console.ReadLine();
        }
    }
}

これは出力です:

これは、非常に多くの文字といくつかの名前と日付を含む段落です。私の名前は「;サム」; 私は ";12:00"; に生まれました。";昼";。私は「どこにでも」住んでいます。. 154文字

引用符の前にセミコロンが必要です。どんな助けでも大歓迎です。ありがとう!

4

4 に答える 4

1

一字一字読まないといけないの?次のコードは、すべてをブロックとして実行し、すべての行を含むリストを返します。

var contents = File.ReadAllLines (@"C:\Users\user1\Documents\data.txt")
                   .Select (l => l.Replace ("\"", ";\""));
于 2013-05-17T21:49:23.007 に答える