Реализация Qt-подобного строкового класса для C++Builder
Если совсем кратко говорить, то суть в том, чтобы использовать Borland'овский стандартный класс UnicodeString через методы QString из Qt. Т.е. речь идет не о чем-то новом в плане разработки, а лишь об унификации стандартов: если уже есть опыт с QString и нет желания вникать в особенности UnicodeString, то можно использовать этот класс. Также использование классов с одинаковыми методами может быть удобно с точки зрения переносимости кода между разными средами разработки. Упрощенные реализации QChar и QStringList сделаны лишь в том контексте, что они требуются классу QString, не более того.
QChar — упрощённый аналог Qt::QChar:
- Хранит один символ (wchar_t).
- Методы для проверки типа символа (isDigit, isLetter и т.д.).
- Преобразование регистра (toUpper, toLower).
QString — основная строка:
- Внутреннее хранение через UnicodeString
- Поддерживает создание из разных источников: char*, wchar_t*, std::string, std::wstring.
- Реализует большинство методов Qt-строки:
- Поиск, разделение, замена, регистр.
- Подстроки (mid, left, right).
- Числовые преобразования (toInt, toDouble).
- Кодировки (UTF-8, Latin1, ISO-8859-1).
- Форматирование (arg, number). arg() реализована лишь частично (!)
- Операторы сравнения и конкатенации.
QStringList — список строк:
- Наследуется от std::vector<QString>.
- Методы: join, contains, filter.
- Перегруженный operator<< для добавления строк.
Использует встроенные возможности C++Builder (
UnicodeString,UTF8String,AnsiString).Поддерживает набор кодировок и преобразований между ними.
Реализует специфичные методы Qt, такие как
section,simplified,toHtmlEscaped.Учитывает особенности индексации
UnicodeString(начинается с 1).
Модуль позволяет использовать Qt-подобный строковый API в проектах на C++Builder без подключения Qt, что полезно для миграции кода или поддержки кроссплатформенных исходников с Qt-стилем работы со строками.
Комментариев нет:
Отправить комментарий