Этот код, кажется, работал до этого, но у меня не было резервной копии, и теперь возникает такая проблема: я почему бы и нет.WPF, C#, каждый раз, когда метод Textrange.save может сохранять только «.text-файл» из 4096 байтов
Цель: Я хотел бы, чтобы регистрировать все последовательный порт контент, полученный от СОМ-порта, в .text файл (или другое расширение, не важно), используя типичные TextRange.save (FileStream, DataFormat.Text).
Вот код сбоку, я просто делаю копию серийной даты в функцию, которую я сохраняю в файлах.
private void Recieve(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
// Collecting the characters received to our 'buffer' (string).
try
{
data_serial_recieved = serial.ReadExisting();
}
catch
{
//MessageBox.Show("Exception Serial Port : The specified port is not open.");
}
Dispatcher.Invoke(DispatcherPriority.Normal, new Delegate_UpdateUiText(WriteData), data_serial_recieved);
/* log received serial data into file */
Tools.log_serial(data_serial_recieved);
}
Это единственное место, которое я использую функцию log_serial (строка).
вот код, который я сохранить строку в файл:
public static void log_serial(string input_text)
{
Paragraph parag = new Paragraph();
FlowDocument FlowDoc = new FlowDocument();
string text = input_text;
string filepath = Globals.savePath
+ "\\" + Globals.FileName_Main
+ ".text";
parag.Inlines.Add(text);
FlowDoc.Blocks.Add(parag);
try
{
using (FileStream fs = new FileStream(@filepath, FileMode.OpenOrCreate, FileAccess.Write))
{
TextRange textRange = new TextRange(FlowDoc.ContentStart, FlowDoc.ContentEnd);
textRange.Save(fs, DataFormats.Text);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
Я попробовал, и нет никаких исключений в этой части.
Проблема: каждый раз, когда я запускаю код, файл, который я получил в конце, всегда имеет размер 4096 байт. На самом деле не могу понять, что вызывает эту ошибку, у кого есть идея, пожалуйста?
Похоже, что это может быть проблема привилегий, но в первый раз, когда я использую этот код, я помню, что я получил весь вывод контента в .text-файл. Это действительно странно для меня. Любая помощь?
Большое спасибо! Я действительно новичок в WPF, и я написал, что просто для того, чтобы сделать некоторую практику (в случае, если мне это понадобится в один прекрасный день). Кстати, будет ли возможно использовать TextRange для добавления flowdocument? Я не могу найти способ сделать это. – cmy
Наконец, чтобы заставить работать мой код, я использовал ** FileStream.exist **, чтобы проверить, существует ли файл, и используйте ** File.CreateText (путь к файлу) **, ** File.AppendText (путь к файлу) ** и ** StreamWriter.Write (текст) **, чтобы сделать все остальное. – cmy