4 / 4 / 1
Регистрация: 28.05.2013
Сообщений: 40
1

Компиляция проходит, но при нажатии кнопки выдает ошибку

07.06.2013, 23:33. Показов 692. Ответов 3
Метки нет (Все метки)

В чем может быть проблема?

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void tras::EncButtonClick()
{
QString result="";
 
QString prep[33]={tr("х"),tr("ц"),tr("ч"),tr("ш"),tr("щ"),tr("ъ"),tr("ы"),tr("ь"),tr("э"),tr("ю"),tr("я"),tr("а"),tr("б"),tr("в"),tr("г"),tr("д"),tr("е"),tr("ж"),tr("з"),tr("и"),tr("й"),tr("к"),tr("л"),tr("м"),tr("н"),tr("о"),tr("п"),tr("р"),tr("с"),tr("т"),tr("у"),tr("ф"),tr("%")};
QString prep2[33]={tr("р"),tr("с"),tr("т"),tr("у"),tr("ф"),tr("х"),tr("ц"),tr("ч"),tr("ш"),tr("щ"),tr("ъ"),tr("ы"),tr("ь"),tr("э"),tr("ю"),tr("я"),tr("а"),tr("б"),tr("в"),tr("г"),tr("д"),tr("е"),tr("ж"),tr("з"),tr("и"),tr("й"),tr("к"),tr("л"),tr("м"),tr("н"),tr("о"),tr("п"),tr(" ")};
QString r=txtA->text();
int T=0;
 
for(int i=0;i<r.length();i++) {
 
for (int q =0; i<33; q++) {
 
if(r.mid(i,1)==prep[q]) T=q;
 
    }
if(T>=33) T-=33;
        result+=prep2[T];
 
}
 
 
txtB->setText(result);
 
}
Добавлено через 1 минуту
Или есть другой вариант замены букв 1 массива на 2?
Или как-то от 0 до длины текста, в теле извлекать кусок текста с i-й позиции длиной 1 и заменять в соответствии с таблицей.
Кто может помочь?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2013, 23:33
Ответы с готовыми решениями:

При открытии запросов и нажатии кнопки об отмене выдает ошибку 2001
Здорово, ребят, выручите по-братски, дела. БД по Органам Исполнительной власти. в форме...

При нажатии кнопки "в корзину" выдает ошибку "error undefined"
Hello! При нажатии кнопки &quot;в корзину&quot; выдает ошибку &quot;error undefined&quot; как с компьютера так и с...

Выдает ошибку при нажатии на button
unit Unit4; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Выдает ошибку при нажатии на кнопку
Здравствуйте. Помогите исправит программу. При нажатии на кнопку запускающую программу выходит...

3
50 / 50 / 4
Регистрация: 12.03.2013
Сообщений: 171
07.06.2013, 23:57 2
Я так подозреваю(особо не вникал) на вскидку - выход за пределы массива. И вообще релазиция хреновая мягко говоря.
1
4 / 4 / 1
Регистрация: 28.05.2013
Сообщений: 40
08.06.2013, 01:38  [ТС] 3
да-да.выход за пределы.
в 12 строчке почему-то i написал вместо q
все заработало
Спасибо
0
38 / 16 / 5
Регистрация: 06.06.2013
Сообщений: 75
08.06.2013, 03:27 4
C++ (Qt)
1
r.mid(i,1)
не проще и здесь тоже r[i]?
Вообще, если твоим способом, я попробовал бы так:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void tras::EncButtonClick()
{
QString result;
 
QString prep=tr("хцчшщъыьэюяабвгдежзийклмнопрстуф%");     //а не лучше эти две переменные вовсе заменить на char?
QString prep2=tr("рстуфхцчшщъыьэюяабвгдежзийклмноп ");     //а то как будто с базукой на бабочку
QString r=txtA->text();
 
for(int i=0; i<r.length(); i++)
for (int q=0; q<33; q++)            
if( r[i] == prep[q] ) 
{
  result+=prep2[q];
  break;
}
 
txtB->setText(result);
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2013, 03:27

Кнопка при нажатии выдает ошибку. Как исправить?
@Override public void onClick(View v) { switch (v.getId()) { case R.id.btn1: Intent...

Пятнашки. При нажатии кнопки влево выводит ошибку
сама функция void MoveLeft() { for (int i = 0;i&lt;4;i++) { for (int j = 0;j&lt;4;j++)...

Почему не проходит компиляцию? выдает ошибку
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

После присвоения кода на кнопку на табе при нажатии кнопки выбивает ошибку
Всем привет делаю для себя браузер, но есть одна проблема После присвоения кода на кнопку на табе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru