0

私のコードは-

Stream myStream;
saveFileDialog1 = new SaveFileDialog();

saveFileDialog1.Filter = "Ticket files (*.tkt)|*.tkt";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.Title = "Save text Files";

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
   myStream = saveFileDialog1.OpenFile();
   if (myStream != null)
   {
       StreamWriter wText = new StreamWriter(myStream);
       string st = gettxt();
       wText.Write(st);
       //wText.WriteLine("sdfsderfsdsf");
       myStream.Close();
    }
}

Writelineとコメントwrite(st)のコメントを外すと、何も書き込まれません。文字列は特定の長さである必要があり、データのみがtktファイルに保存されます。最後の問題は、テキストが大きすぎる場合、テキストの一部が書かれただけ..助けてください

4

3 に答える 3

1

で試してみてください

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
   TextWriter tw = new StreamWriter(saveFileDialog1.FileName);
   tw.WriteLine(gettxt());
   tw.Close();
}

お役に立てれば。

于 2011-03-04T21:21:45.370 に答える
0

ファイルを読み取るアプリに問題があることを除いて、問題を説明する方法はほとんどありません。.txtファイルを作成していることに注意してください。必ずしも、.tktファイル形式と互換性があるとは限りません。それがどのように見えるか。1つは、ファイルにBOMが含まれ、ファイルの先頭にutf-8形式のテキストファイルであることを示す3バイトが含まれます。

問題をより適切に診断するために試みることができる1つのこと:

   using (var wText = new StreamWriter(myStream, Encoding.Default)) {
       string st = gettxt();
       wText.Write(st);
       //wText.WriteLine("sdfsderfsdsf");
   }

Encoding引数は、文字をBOMなしでデフォルトのコードページに書き込む必要があることを指定します。

于 2011-03-04T21:35:08.953 に答える
0
saveFileDialog1 = new SaveFileDialog();

saveFileDialog1.Filter = "Ticket files (*.tkt)|*.tkt";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.Title = "Save text Files";

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
    using (Stream myStream = saveFileDialog1.OpenFile())
    {
        using (StreamWriter wText = new StreamWriter(myStream))
        {
            wText.WriteLine(gettext());
        }
    }
}
于 2011-03-04T21:28:30.800 に答える