antarey Опубликовано 12 июня, 2014 Поделиться Опубликовано 12 июня, 2014 (изменено) Подскажите как реализовать один код для десктопной и мобильной платформы при работе со строками? В статье Migrating Delphi Code to Mobile from Desktop рекомендуют использовать TStringHelper, но что-то как его юзать в билдере не нашел Мне надо чтобы код String s = "Привет Вася"; String s1 = s.SubString(1,1); в не зависимости от платформы выдавал первый символ строки - П Как этого добиться не используя директивы компилятора для проверки платформы и SubString0/SubString1? Изменено 17 июня, 2014 пользователем Brovin Yaroslav Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 14 июня, 2014 Администраторы Поделиться Опубликовано 14 июня, 2014 (изменено) Как вы заметили есть два способа: Использовать директиву условной компиляции Использовать аналоги функции SubString Каждая функция в C++ Builder имеет три аналога. Например, для вашей функции SubString, есть три варианта: SubString0 - работает со строкой, как с 0-основной SubString1 - работает со строкой, как с 1-основной SubString - Вариант работы со строкой зависит от платформы (мобильные - 0, настольные - 1) Вы используете третий и поэтому на разных платформах получаете разные варианты работы. Другого варианта я думаю нет. TStringHelper - это чисто Делфовая особенность. В билдере она не будет работать. Так как строки в Delphi - это базовый тип, а в Builder C++ - нет. Изменено 14 июня, 2014 пользователем Brovin Yaroslav Kitty 1 Ссылка на комментарий
0 antarey Опубликовано 16 июня, 2014 Автор Поделиться Опубликовано 16 июня, 2014 (изменено) TStringBuilder заработал причем правильно на обеих платформах. Просто таже SubString0 для десктопа что для 0 индекса что для 1 индекса строки выдает первый символ строки, но TStringBuilder работает нормально - меня устраивает. Изменено 17 июня, 2014 пользователем Brovin Yaroslav Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 17 июня, 2014 Администраторы Поделиться Опубликовано 17 июня, 2014 Просто используйте на всех платформах тот вариант, который вас устраивает: SubString0 - если вы хотите работать с 0-основными строками SubString1 - если хотите работать как-будто с 1-основной строкой Kitty 1 Ссылка на комментарий
Вопрос
antarey
Подскажите как реализовать один код для десктопной и мобильной платформы при работе со строками?
В статье Migrating Delphi Code to Mobile from Desktop рекомендуют использовать TStringHelper, но что-то как его юзать в билдере не нашел
Мне надо чтобы код
в не зависимости от платформы выдавал первый символ строки - П
Как этого добиться не используя директивы компилятора для проверки платформы и SubString0/SubString1?
Изменено пользователем Brovin YaroslavСсылка на комментарий
3 ответа на этот вопрос
Рекомендуемые сообщения