![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Перенос проекта с D6 на D-XE3: решение проблем с VirtualStringTree и UnicodeDelphi , Синтаксис , ДеревьяПри переносе проекта с D6 на D-XE3 пользователи могут столкнуться с проблемами при сохранении и загрузке данных узла в событиях OnSaveNode и OnLoad в VirtualStringTree версии 5.10. Одна из таких проблем связана с некорректной обработкой Unicode. Пользователь столкнулся с проблемой получения мусора при сохранении и загрузке данных узла в VirtualStringTree. В коде, который он предоставил, видно, что он пытается сохранить и загрузить данные узла, включая булево значение Owned, строку Symbol, currency AvgTarget и double PE. Однако, проблема заключается в том, что он не учитывает длину строки Symbol, что приводит к неправильному чтению данных при загрузке. Для решения этой проблемы пользователь должен написать длину строки Symbol в поток перед записью самой строки. При чтении данных из потока он должен сначала прочитать длину строки, а затем прочитать саму строку. Вот примеры исправленного кода:
Приведенные выше примеры демонстрируют, как правильно сохранить и загрузить данные узла в VirtualStringTree с учетом Unicode. При записи данных в поток сначала записывается длина строки Symbol, а при чтении данных из потока сначала считывается длина строки Symbol, а затем сама строка. В альтернативном ответе было предложено использовать BinaryWriter вместо низкоуровневых потоков. Однако, это решение не решает проблему с некорректной обработкой Unicode в коде пользователя. В итоге, пользователь должен убедиться, что он правильно обрабатывает данные Unicode при сохранении и загрузке данных узла в VirtualStringTree. Использование правильного подхода к записи и чтению данных в поток поможет избежать проблем с мусором при загрузке данных. При переносе проекта с D6 на D-XE3 необходимо решить проблемы с VirtualStringTree и Unicode при сохранении и загрузке данных узла в событиях OnSaveNode и OnLoad. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |