2015-03-05 5 views
1

Я пытаюсь получить подрезать ведущие нули, если любой из подстроки строки, содержащей буквенно-цифровой, такие как ABC13, 09889 и т.д.комплектации нулей из (подстроки) NSString в XPCOM

Вот пример кода я Я пытаюсь. Не уверен, какой тип строки подходит для этой цели, поэтому с помощью nsString.

nsString logicId; 
    // this is nice way to assing values to nsString, mozilla way. 
    logicId.Assign(NS_ConvertASCIItoUTF16((v)));// v is my value such as ABC786 

    if(logicId.Length() > 0) 
    { 
     nsAString& lastFive = Substring(logicId, 17, 5); 
     // lastFive is now a string representing the last 5 characters 
     // let's trim leading zeros. 
      lastFive.Trim("0", true, false); 
     plugin->mId.Assign(lastFive); 
    } 

Поскольку подстрока является указателем const, вы не можете сделать обрезку на ней. Итак, как получить подстроку и все еще обрезать ее. Какие-либо предложения?

ответ

1

я сумел сделать это как:

nsString logicId; 

logicId.Assign(NS_ConvertASCIItoUTF16((v))); 

     /* mozilla style */ 
     if(logicId.Length() > 0) 
     { 

      nsString lastFive(Substring(logicId, 17, 5)); 
      //and then trim that 
      lastFive.Trim("0", true, false); 

      plugin->mId.Assign(lastFive); 
      //printf("%s\n", NS_ConvertUTF16toUTF8(lastFive).get()); 

     } 
+0

Спасибо за Чаринг! это C++ да? – Noitidart

+1

его C++ внутри компонента xpcom. В мире xulrunner. xulrunner больше не рекомендуется, теперь вы должны использовать firefox при написании компонентов. но да, вы можете писать компоненты как в C++, так и в js в firefox. – sb32134

+0

Очень хорошо, ваш C++ аддон с открытым исходным кодом? Мне очень хотелось бы посмотреть, как все это делается. :) – Noitidart

Смежные вопросы