1

私が持っているのは、60MBの巨大なtxtファイルです。各行を読み取り、区切り文字に基づいて分割されたファイルを作成する必要があります。ファイルの読み取りやファイルの作成に問題はありません。複雑なのは区切り文字によるもので、区切り文字が表示されません。誰かがその区切り文字の読み方について提案をしてくれるなら、私はとても感謝しています。

区切り文字=Ç

public void file1()
{
    string betaFilePath = @"C:\dtable.txt";
    StringBuilder sb = new StringBuilder();
    using (FileStream fs = new FileStream(betaFilePath, FileMode.Open))
    using (StreamReader rdr = new StreamReader(fs))
    {
        while (!rdr.EndOfStream)
        {
            string[] betaFileLine = rdr.ReadLine().Split('Ç');
            {
                sb.AppendLine(betaFileLine[0] + "ç" + betaFileLine[1] + betaFileLine[2] + "ç" + betaFileLine[3] + "ç" + betaFileLine[4] + "ç" + betaFileLine[5] + "ç" + betaFileLine[6] + "ç" + betaFileLine[7] + "ç" + betaFileLine[8] + "ç" + betaFileLine[9] + "ç" + betaFileLine[10] + "ç");
            }
        }
    }
    using (FileStream fs = new FileStream(@"C:\testarea\load1.txt", FileMode.Create))
    using (StreamWriter writer = new StreamWriter(fs))
    {
        writer.Write(sb.ToString());
    }
}

小さな更新:

string[] betaFileLine = rdr.ReadLine().Split('Ç'); 

キャラクターÇで分割することはできません。デバッグすると読めない文字になってしまいます。

みんな、あなたが私を正しい方向に向けてくれた助けに感謝します。

変化:

using (StreamReader rdr = new StreamReader(fs))  

に:

using (StreamReader rdr = new StreamReader((fs),Encoding.Default))  

修正しました。

4

2 に答える 2

5

StreamReaderテキストファイルと同じテキストエンコーディングを使用していることを確認してください。コンストラクターは、使用するエンコードを示すために2番目のパラメーターを取ることができます。

于 2010-03-24T12:16:21.890 に答える
2

Çで分割しているように見えますが、çを追加しています。大文字の区切り文字を小文字に、またはその逆に置き換えるほど単純なことではありません。

于 2010-03-24T12:17:59.577 に答える