Все это зависит от цели формата, конечно.
Один гибкий подход должен структурировать весь файл как TLV (Значение длины тега) триплеты. Например, сделайте свой файл состоявшим из записей, каждая запись, начинающаяся с 4-байтового заголовка:
1 byte = record type
3 bytes = record length
followed by record content
Относительно порядка байтов при хранении индикатора порядка байтов в файле все приложения должны будут поддерживать все форматы порядка байтов. С другой стороны, при определении конкретного порядка байтов для файлов только приложения на платформах с несоответствием порядку байтов должны будут сделать дополнительную работу, и это может быть решено во время компиляции (использующий условную компиляцию).
Если вы все еще идете по пути winforms .net, тогда наследуйте от RichTextBox и добавьте следующий код, он преобразует RichTextBox во что-то «полезное»:
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary(string lpFileName);
protected override CreateParams CreateParams
{
get
{
CreateParams cparams = base.CreateParams;
if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
{
cparams.ClassName = "RICHEDIT50W";
}
return cparams;
}
}
Источник из здесь .
Хорошего дня :)
3. Существуют также редакторы HTML WYSIWYG, которые я мог бы использовать, но все они в основном являются браузером IE, встроенным и отредактированным с использованием MSHTML, и это кажется немного странно иметь это в приложении Winforms (возможно, я ошибаюсь).
Я написал HTML-редактор WYSIWYG: элемент управления HTML ModelText для .NET . Это чистый управляемый код, не зависящий от браузера; он экспортирует API-интерфейсы .NET, которые позволяют программно получать доступ к его содержимому.
Следующая версия, которая будет выпущена (через несколько дней), будет поддерживать выравнивание ячеек (путем поддержки свойства CSS "text-align").