Discussion Board

Page 2 of 2 FirstFirst 12
Results 16 to 22 of 22
  1. #16
    Nokia Developer Moderator A.A.M.'s Avatar
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,308
    Quote Originally Posted by DM View Post
    возможно поможет RCOMP 8.2? Где его взять?
    Мне о такой версии не известно.
    В составе S60 3rd MR, FP1, FP2 SDK идет версия "Resource compiler version 8.1 (Build 004)",
    в составе S60 5th, N97 SDK идет версия "Resource compiler version 8.1 (Build 005)"

    Но дело не в компиляторе ресурсов.

    Quote Originally Posted by DM View Post
    Строки не более 1024 символов, а в UTF-8 это 2 кб получается. Как меряется максимальная длина? В килобайтах или в символах?
    Длина измеряется в байтах. То есть для текста на латинице - это 1024 символа, для текста на русском - в два раза меньше, то есть порядка 512 символов (если все символы на русском).

    Для вашего первого примера корректно компилируется больше 512 символов:
    "Александр из тех, кому суждено жить и умереть, сжимая клинок в руках. Его отец был знаменитым кьянским штурмовиком, проводившим все время на фронте. Рассказы матери о подвигах отца-героя воспитали в мальчике отвагу, и патриотизм. Когда Александр подрос и вот-вот должен был отправиться в военную академию пришло печальное известие - отец Александра пропал безвести. Юноша с отчаянния, не уведомив матерь, отправился на его поиски. Времена поисков Александра скрыты в тумане неизвестности, в Кьянму он не возвращался. Выяснив, что случилось с отцом (об этом Алекc"
    Это происходит потому, что пробелы и знаки препинания занимают 1 байт, а русские буквы - 2 байта. Общая длина текста в данном случае получается равной 1023 байтам.
    Last edited by A.A.M.; 2010-06-30 at 10:05.

  2. #17
    Registered User DM's Avatar
    Join Date
    Feb 2008
    Posts
    40
    Спасибо, буду делить строки на куски по 500 символов, видимо другого решения нет.

  3. #18
    Nokia Developer Moderator A.A.M.'s Avatar
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,308
    По-моему проще длинный текст хранить в отдельном текстовом файле, а при необходимости считывать его в HBufC.

  4. #19
    Nokia Developer Expert Trufanov's Avatar
    Join Date
    Mar 2010
    Location
    Moscow
    Posts
    34
    Quote Originally Posted by A.A.M. View Post
    Мне о такой версии не известно.
    В составе S60 3rd MR, FP1, FP2 SDK идет версия "Resource compiler version 8.1 (Build 004)",
    в составе S60 5th, N97 SDK идет версия "Resource compiler version 8.1 (Build 005)"
    В Symbian^3 SDK идет rcomp 8.2 (Build 008)

    Выложил тут: http://upload.com.ua/get/901763184/

  5. #20
    Registered User DM's Avatar
    Join Date
    Feb 2008
    Posts
    40
    Спасибо, но к сожалению старые ОС не могут корректно работать с ресурсами сгенерированными этим компилером. Точнее не работают именно длинные строки.

  6. #21
    Registered User DM's Avatar
    Join Date
    Feb 2008
    Posts
    40
    Короче говоря так. ReadDesC16ArrayL() поддерживает только LBUF, TBUF не поддерживается. Тоже самое относится и к ее реализации в cone.
    Максимум 255 символов:

    Each element of the array is interpreted as:

    a byte value defining the number of 8 bit text characters or the length of binary data (the resource string/binary data length is limited to 255 characters max)

  7. #22
    Registered User Ktulhu's Avatar
    Join Date
    Sep 2009
    Posts
    33
    Если вы хотите подгрузить массив из TBUF, просто расположите строки друг за другом в ресурсе:
    Code:
    RESOURCE TBUF r_string_1 { txt = qtn_string_1; }
    RESOURCE TBUF r_string_2 { txt = qtn_string_2; }
    // ...
    RESOURCE TBUF r_string_n { txt = qtn_string_n; }
    А подгружать можно так:
    Code:
    RPointerArray<HBufC> array;
    
    for (i = R_STRING_1; i <= R_STRING_N; i++) array.AppendL(CCoeEnv::Static()->AllocReadResourceAsDes16L(i));
    Такое возможно, поскольку идентификаторы ресурсов являются постоянно возрастающими на 1 целыми числами. Главное не допускать попадание других ресурсов в этот «массив». (Код пишу по памяти могу в чём-то ошибиться)

    Другой вариант хранить в ресурсах имя файла с локализацией, уникальное для каждой конкретной локали. Как будет происходить в данном случае загрузка текстовых строк, оставлю на ваше усмотрение.

Page 2 of 2 FirstFirst 12

Similar Threads

  1. Стэк - ограничение
    By ganenko in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 3
    Last Post: 2009-08-24, 12:17
  2. CEikLabel и перенос строк.
    By ssealien in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 4
    Last Post: 2008-09-18, 15:17
  3. Помогите разобраться, а то загруз в ресурсах
    By JTOne in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 14
    Last Post: 2008-01-06, 15:29

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved