Показать сообщение отдельно

  #12  
Старый 07.04.2010, 01:55
M_script_
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
С нами: 9227388

Репутация: 180
По умолчанию

Пример реализации на билдере (на форму кидаем 3 едита и баттон):
PHP код:
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    
TStringListlst = new TStringList;
    
lst->CommaText Edit1->Text// записываем словарь в стринглист
    
unsigned int iBase lst->Count// основание системы счисления
    
unsigned int iNum Edit2->Text.ToInt(); // число, которое надо преобразовать
    
unsigned int iLen Edit3->Text.ToInt(); // длина комбинации
    
String sRes ""// результат
    
--iNum// так, как комбинации начинаются с 0 (кобминация состоящая из первого символ словаря), уменьшаем число на 1
    // преобразование числа в систему счисления с основанием iBase 
    
while(iNum
    {
        
sRes.Insert(lst->Strings[iNum%iBase], 0);
        
iNum /= iBase;
    }
    
// дописываем нули(первый символ словаря),  если длина результата меньше длины комбинации
    
for(int i sRes.Length(); iLen; ++i)
        
sRes.Insert(lst->Strings[0], 0);
    
lst->Clear();
    
delete lst;
    
Edit4->Text sRes// выводим результат
}
//--------------------------------------------------------------------------- 
в Edit1 пишем элементы словаря через запятую - a,b,c,d,f,g..... (если в словаре есть запятая, то пишем ее в кавычках)
Edit2 - номер комбинации
Edit3 - длина комбинации
Edit4 - результат

Последний раз редактировалось M_script_; 07.04.2010 в 01:58..
 
Ответить с цитированием