• Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
Theme Center
  • Theme Center
  • default

  • reset theme
Collapse

tonpie.io

Подпишись на канал фаундера и разработчика экосистемы tonpie

Как прочитать строку по одному символу за раз?

Запланировано Прикреплена Закрыта Перенесена TON Overflow на русском
a-funca-slicea-string
2 Сообщения 1 Posters 62 Просмотры
    • Сначала старые
    • Сначала новые
    • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано
    #1

    Предположим, у меня есть фрагмент, содержащий строку, и я хочу прочитать его символ за символом. Как мне это сделать?


    Этот вопрос был импортирован из чата Telegram: <***Скрыто***

    click to show


    Оригинал вопроса

    1 ответ Последний ответ
    0
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано
    #2

    Для чтения фрагмента вы можете использовать load_uint(8) в функции.

    Более подробную информацию можно проверить на примере, подобном здесь: https://docs.ton.org/develop/smart-contracts/guidelines/tips#spend-less-gas-по-крупным-смарт-контрактам

    () recv_external(slice in_msg) impure {
         var signature = in_msg~load_bits(512);
         var cs = in_msg;
         var (subwallet_id, valid_until, msg_seqno) = (cs~load_uint(32), cs~load_uint(32), cs~load_uint(32));
         throw_if(36, valid_until <= now());
         var ds = get_data().begin_parse();
         var (stored_seqno, stored_subwallet, public_key, plugins) = (ds~load_uint(32), ds~load_uint(32), ds~load_uint(256), ds~load_dict());
         ds.end_parse();
         throw_unless(33, msg_seqno == stored_seqno);
         throw_unless(34, subwallet_id == stored_subwallet);
         throw_unless(35, check_signature(slice_hash(in_msg), signature, public_key));
         accept_message();
         set_data(begin_cell()
           .store_uint(stored_seqno + 1, 32)
           .store_uint(stored_subwallet, 32)
           .store_uint(public_key, 256)
           .store_dict(plugins)
           .end_cell());
         commit();
         cs~touch();
         int op = cs~load_uint(8);
    
    1 ответ Последний ответ
    0

  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.
  • Первое сообщение
    Последнее сообщение
0
  • Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.