Форум » BUGS » ОШибка в читалке при выборе стороннего тхт » Ответить

ОШибка в читалке при выборе стороннего тхт

KOMODOR: Если в читалке открывать тхт, то выходит: [more]System.Xml.XmlException: '.', hexadecimal value 0x00, is an invalid character. Line 1, position 870645. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args) at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars) at System.Xml.XmlTextReaderImpl.ParseText() at System.Xml.XmlTextReaderImpl.ParseElementContent() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) at System.Xml.XmlDocument.Load(XmlReader reader) at System.Xml.XmlDocument.LoadXml(String xml) at koobaudio.frmWrite.RepTags(String tx, Boolean noLines) at koobaudio.frmRead.LoadText(String txt) at koobaudio.frmRead.tOpen_Click(Object sender, EventArgs e) at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ToolStrip.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)[/more] А при открытии некоторых других файлов ошибка не выходит, зато вместо текста выходят закорючки: [quote]����� ���������� ������������� ������, �� �� �����, ����� �� ��-������� ������������ ���. � ������ ��������� ���������� ������������ �������, ����� ������� � ����������, � ���� � ����� � ��������� ����, �� ���������� � ����������� �������� ����� ��������������� � ��������� ������ �������� �� ���������, � �, ��������, ������� ������� �� ������ ���������� ���� �����. ���� ��������� ���������, �� ���� ���������� ������������, �������� ������� ������ ����� ������, ��� ��������� �����-��, � ������� ����� ����� - ���-�� ���� �������������, � ������ ������� �� ������������ ���� ��������� �������� �� ������ �������. � ���� ������� �� �������� � �������� �����, ���� ���-�� ������. ������. ����� ���� �����������, ���� �� ��������, ����������� [/quote] Так, что очевидно, что-то не то с кодировкой.

Ответов - 4

Cminant: Да, пока что поддерживается только UTF-8, в следующей версии добавлю поддержку прочих кодировок.

KOMODOR: Теперь некоторые нексты открывает, а на некоторых ошибку выдаёт: System.Xml.XmlException: '.', hexadecimal value 0x00, is an invalid character. Line 1, position 722032. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args) at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars) at System.Xml.XmlTextReaderImpl.ParseText() at System.Xml.XmlTextReaderImpl.ParseElementContent() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) at System.Xml.XmlDocument.Load(XmlReader reader) at System.Xml.XmlDocument.LoadXml(String xml) at koobaudio.frmWrite.RepTags(String tx, Boolean noLines) at koobaudio.frmRead.LoadText(String txt) at koobaudio.frmRead.tOpen_Click(Object sender, EventArgs e) at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ToolStrip.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ВЫаёт ошибку, например, на таком

Cminant: Ошибку с 0x00 исправил, хотя возможны и другие подобные баги при преобразовании простого текста в xml, все-таки обработка текста там неполноценная, предназначена в основном для проверки настроек на коротких фрагментах текста. Для чтения книг целиком лучше все-таки импортировать в библиотеку как обычный проект...


KOMODOR: Проверил на нескольких тхт, - вылетов не обнаружено Режим читалки удобен для вычитки отсканенного текста или для наглядной проверки словарей или еще для чего-нить подобного, где надо видеть непосредственно читаемый текст перед глазами, и обязательно - с подсветкй читаемого места, так что огромное спасибо за читалку, народ оценит



полная версия страницы