c # savefilediaglog сохранение текста определенной длины - PullRequest
0 голосов
/ 05 марта 2011

мой код -

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 и комментарий пишу (st), ничего не пишется ... и строка должна быть определенной длины, тогда только данные сохраняются в файле tkt ..и последняя проблема заключается в том, что если текст слишком большой, то часть текста пишется только .., пожалуйста, помогите мне

Ответы [ 3 ]

1 голос
/ 05 марта 2011

попробуй с

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

Надеюсь, это поможет.

0 голосов
/ 05 марта 2011

Существует очень мало способов объяснить проблему, кроме проблемы с приложением, которое читает файл.Помните, что вы пишете файл .txt, он может не обязательно быть совместим с форматом файла .tkt.Как бы это ни было похоже.Во-первых, файл будет содержать спецификацию, 3 байта в начале файла, который говорит, что это текстовый файл в формате utf-8.

Одна вещь, которую вы могли бы попытаться диагностировать лучше:

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

Аргумент Encoding указывает, что символы должны быть записаны на кодовой странице по умолчанию и без спецификации.

0 голосов
/ 05 марта 2011
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());
        }
    }
}
...