Перейти к содержанию
Fire Monkey от А до Я
  • 0

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


antarey

Вопрос

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

В статье 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 пользователей онлайн

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