Перейти к содержанию
  • 0
antarey

Как работать с TStringHelper и TStringBuilder в C++Builder ХЕ6

Вопросы

Подскажите как реализовать один код для десктопной и мобильной платформы при работе со строками?

В статье Migrating Delphi Code to Mobile from Desktop рекомендуют использовать TStringHelper, но что-то как его юзать в билдере не нашел

 

Мне надо чтобы код

String s = "Привет Вася";
String s1 = s.SubString(1,1);

в не зависимости от платформы выдавал первый символ строки - П

 

Как этого добиться не используя директивы компилятора для проверки платформы и SubString0/SubString1?

Отредактировал Brovin Yaroslav

Поделиться сообщением


Ссылка на сообщение

Рекомендуемые сообщения

  • 0

Как вы заметили есть два способа:

  1. Использовать директиву условной компиляции
  2. Использовать аналоги функции SubString

Каждая функция в C++ Builder имеет три аналога. Например, для вашей функции SubString, есть три варианта:

  1. SubString0 - работает со строкой, как с 0-основной
  2. SubString1 - работает со строкой, как с 1-основной
  3. SubString - Вариант работы со строкой зависит от платформы (мобильные - 0, настольные - 1)

Вы используете третий и поэтому на разных платформах получаете разные варианты работы.

 

Другого варианта я думаю нет. TStringHelper - это чисто Делфовая особенность. В билдере она не будет работать. Так как строки в Delphi - это базовый тип, а в Builder C++ - нет.

Отредактировал Brovin Yaroslav

Поделиться сообщением


Ссылка на сообщение
  • 0

TStringBuilder заработал причем правильно на обеих платформах.

 

Просто таже SubString0 для десктопа что для 0 индекса что для 1 индекса строки выдает первый символ строки, но TStringBuilder работает нормально - меня устраивает.

Отредактировал Brovin Yaroslav

Поделиться сообщением


Ссылка на сообщение
  • 0

Просто используйте на всех платформах тот вариант, который вас устраивает:

  • SubString0 - если вы хотите работать с 0-основными строками
  • SubString1 - если хотите работать как-будто с 1-основной строкой

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...