Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
21 / 21 / 6
Регистрация: 27.07.2011
Сообщений: 320
1

Ошибка в строке

05.10.2015, 12:57. Показов 419. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет, не могу найти грабли, хэлп!

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int x = 0;
int len = ListBox1->Items->Strings[0].Length();
 
for(int z = 0; z<=len ; z++)
            {
 
 
      if(ListBox1->Items->Strings[0][z]=='^')
              {
              x++;
 
            viewer->Items->Insert(x,ListBox1->Items->Strings[0][z+1]);
               }
            else
 
               {
              viewer->Items->Strings[0]=viewer->Items->Strings[0]+ListBox1->Items->Strings[0][z];
               }
 
            }
При компиляции все ок, но при выполнении кода ругается на
Ошибка в строке

Ошибка в строке
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2015, 12:57
Ответы с готовыми решениями:

Найти все числа в строке и вывести каждое число в отдельной строке (ошибка в коде)
Помогите пожалуйста с кодом. Задание такое: Найти все числа в строке, каждое число вывести в...

В чем ошибка?По одной строке нормально в базу заходят,а две сразу вылетает ошибка?
INSERT INTO `jos_menu` (`id`, `menutype`, `name`, `alias`, `link`, `type`, `published`, `parent`,...

Подскажите ,где ошибка в php? В какой-то строке ошибка
Здравствуйте. На вордпресс нашёл плагин на форуме.Тема закрыта,спросить не у кого. Пишут...

Ошибка TNS-01150: Указан неверный адрес имени прослушивателя NL-00303: синтаксическая ошибка в NV-строке
после команды lsnrctl status выдает такую ошибку: TNS-01150: Указан неверный адрес имени...

7
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32836 / 21173 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
05.10.2015, 13:07 2
C++
1
for(int z = 0; z< len ; z++)
, иначе при попытке обратиться к Strings[0][z+1] будет что? Правильно, вылет за пределы строки.
0
Заблокирован
05.10.2015, 13:10 3
количество Len, но так как нумерация начинается с 0, то в цикле нужно сделать len-1 итерацию или же
Цитата Сообщение от volvo Посмотреть сообщение
z< len
0
21 / 21 / 6
Регистрация: 27.07.2011
Сообщений: 320
05.10.2015, 13:36  [ТС] 4
Убрал вообще эту строку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int x = 0;
int len = ListBox1->Items->Strings[0].Length();
 
for(int z = 0; z<=len ; z++)
            {
 
 
      if(ListBox1->Items->Strings[0][z]=='^')
              {
              x++;
 
        //    viewer->Items->Insert(x,ListBox1->Items->Strings[0][z+1]);
               }
            else
 
               {
              viewer->Items->Strings[0]=viewer->Items->Strings[0]+ListBox1->Items->Strings[0][z];
               }
 
            }
Проблема так и осталась
0
Заблокирован
05.10.2015, 13:48 5
и что ты убрал ?
тебе говорят про то, что в цикле идёт обращение к несуществующему элементу и нужно сделать на 1 итерацию меньше, а ты убираешь Insert ....
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32836 / 21173 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
05.10.2015, 13:49 6
Нет, все-таки нумерация в строке - с единицы, Дельфийские строки же:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    int x = 0;
    int len = ListBox1->Items->Strings[0].Length();
 
    for (int z = 1; z <= len; z++)
    {
         if (ListBox1->Items->Strings[0][z] == '^')
        {
            x++;
           // viewer->Items->Insert(x,ListBox1->Items->Strings[0][z+1]);
        }
        else
        {
            viewer->Items->Strings[0] = viewer->Items->Strings[0] +
                ListBox1->Items->Strings[0][z];
        }
    }
0
Заблокирован
05.10.2015, 13:56 7
То такое )
суть в том, что пусть есть 3 элемента с номерами 0,1,2
при цикле for(int z = 0; z<=len ; z++) :
len = 3 - будет идти обращение к 0,1,2 и 3-ему несуществующему элементу

а так если даже и нумерация с 1 -т.е номера 1,2,3
и при цикле for(int z = 1; z<=len ; z++) всё должно быть норм
0
21 / 21 / 6
Регистрация: 27.07.2011
Сообщений: 320
05.10.2015, 14:02  [ТС] 8
точно, нумерация строк начинается с нуля, а символов строки с единицы.
0
05.10.2015, 14:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2015, 14:02
Помогаю со студенческими работами здесь

Ошибка синтаксиса на 10 строке (ошибка 1064)
//ошибка синтаксиса на 10 строке (ошибка 1064) CREATE TABLE InternetProvayder.Contract (...

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

Ошибка в строке
Помогите найти ошибку в строке $queryup = &quot;UPDATE `cosmo` SET...

Ошибка в строке
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; long double...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru