Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/57: Рейтинг темы: голосов - 57, средняя оценка - 4.82
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069

List index out of bounds (0)

17.04.2012, 11:23. Показов 11342. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добро всем!
Вот такой massage перед запуском программы мне выдает на XP и только на одном ПК, причем windows XP ставился с одного диска на все машины, ошибка выводится только на одном:
List index out of bounds (0)
перевел так:
Индекс списка вне границ (0)
Кто знает что это значит дайте совет.
Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.04.2012, 11:23
Ответы с готовыми решениями:

List index out of bounds (-1)
Доброго дня всем! Помогите пожалуйста. При попытке запустить приложение в Borland Developer Studio (C++) выдает ошибку: List index out of...

List index out of bounds 0
Добрый день! Пытаюсь проработать пример передачи файла через клиент-сервер и ничего не получается.... В чем проблема? почему такое выводит?...

list index out of bounds
Здрасте возникла проблема. void ListFiles(AnsiString path, TStrings* List, TStrings* List2, long int strn) { TSearchRec sr; ...

10
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
17.04.2012, 11:26
Samrisbe, покажите код, где выпадает эта ошибка
1
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
17.04.2012, 12:58
Samrisbe, скорее всего где-то забыли проверку количества выполнить:
C++
1
2
3
if (ListBox1->Items->Count > 1 && SomeIterator < ListBox1->Items->Count) {
  // actions
}
Или же при выполнению действия к выделенному объекту (при инициализации TListBox) ни один объект не существует и не выделен, поэтому нужна проверка:
C++
1
2
3
if (ListBox1->ItemIndex >= 0) {
  // actions
}
1
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
17.04.2012, 13:04
если только на одном ПК, то, возможно, где-то в программе есть "список дисков" и на "дефектном" ПК не хватает одного раздела (или DVD привода)
1
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
17.04.2012, 13:08
сталкивался разок с подобным, именно как у Samrisbe...
проще говоря, прога что-то подгружает с внешних файлов, а на одном из компов этих файлов, например, нет...
в коде же на такой случай отсутствуют вышеупомянутые обработки...
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
17.04.2012, 20:48  [ТС]
Вот часть кода при выполнении которого выводится вышеупомянутое сообщение:
C++
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <WinIoCtl.h>
#include <stdio.h>
#include "Project1.cpp"
#include <registry.hpp>
#include <Tlhelp32.h>
#define IOCTL_CDROM_MEDIA_REMOVAL 0x24804
AnsiString PrepPath(AnsiString path);
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
bool lock=0;
char z[500];
DWORD zz;
HANDLE hMutex;
DWORD WINAPI finddev(void*p);
void getdrive(int type,TStringList* str);
TStringList *str321;
void RunProject2();
   AnsiString temp;
   HANDLE qwe;
   DWORD ret;
HANDLE HS;
void locks(HANDLE hwnd);
AnsiString Project2name="Project2.exe";
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
CreateMutex( NULL, true, "Project1" );
     if ( GetLastError() == ERROR_ALREADY_EXISTS ){
        exit(0); // ВОТ ЗДЕСЬ НЕ МОЖЕТ БЫТЬ КАКА ?
   }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
str321=new TStringList;
hMutex=CreateMutex(0,0,"qwerty");
GetWindowsDirectory(z,500);
AnsiString f=z;
TStringList* str=new TStringList;
        AnsiString m1=z;
        m1+="\\set.chk";
        GetFileAttributes(m1.c_str());
        if(GetLastError()==2)
                {
                str->Add("0");
                str->Add("0");
                str->Add("0");
                AnsiString m=z;
                str->SaveToFile(m+"\\set.chk");
               }else
                {
                str->LoadFromFile(m1);
                if(str->Strings[0]=="1") Button1->Click();
                if(str->Strings[1]=="1") Button5->Click();
                if(str->Strings[2]=="1") Button7->Click();
                }
str->Clear();
str->Add(Application->ExeName);
str->SaveToFile(f+"\\path");
delete str;
// далее код не выполняется, я понял это изза того что приложение не скрывается
Application->ShowMainForm = false;
ShowWindow(Handle,SW_HIDE);
ShowWindow(Application->Handle,SW_HIDE);
}
//--------------------------------------------------------------------------
странно то что глюк только на одной машине, причем проявился спустя неделю после установки приложения, на двух других XP (точ точ такихже XP) и на семерке глюка нет.
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
17.04.2012, 21:14
Цитата Сообщение от Samrisbe Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
AnsiString m1=z;
 m1+="\\set.chk";
 GetFileAttributes(m1.c_str());
 if(GetLastError()==2)
 {
 str->Add("0");
 str->Add("0");
 str->Add("0");
 AnsiString m=z;
 str->SaveToFile(m+"\\set.chk");
 }else
 {
 str->LoadFromFile(m1);
 if(str->Strings[0]=="1") Button1->Click();
 if(str->Strings[1]=="1") Button5->Click();
 if(str->Strings[2]=="1") Button7->Click();
 }
Абсолютно мне не нравится этот участок... откуда у вас столько уверенности что файл открылся успешно (на нём нет блокировок), что он существует вообще?
Вы сразу начинаете работу со строками, не убедившись, существуют ли они:
C++
1
2
3
 if(str->Strings[0]=="1") Button1->Click();
 if(str->Strings[1]=="1") Button5->Click();
 if(str->Strings[2]=="1") Button7->Click();
Как насчёт тривиальных проверок:
C++
1
bool Result = FileExists("FileName",true);
C++
1
if (str->Count > N) {...}
Что вообще говорит пошаговая отладка?
1
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
17.04.2012, 21:18
Цитата Сообщение от Samrisbe Посмотреть сообщение
if(GetLastError()==2)
А по моему вот здесь может быть ошибка:
C++
1
2
3
4
5
6
7
  } else
{
 str->LoadFromFile(m1);
 if(str->Strings[0]=="1") Button1->Click();
 if(str->Strings[1]=="1") Button5->Click();
 if(str->Strings[2]=="1") Button7->Click();
}
- когда условие не выполняется (else ) идет обращение к строкам str , а их еще нет (файл m1 может быть и нулевой длины).

Добавлено через 1 минуту

Не по теме:

Пардон за дубляж...

1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
17.04.2012, 21:45  [ТС]
Спасибо товарищи, я попробую подредактировать эту часть кода, проверю на злопалучном XP (хотя сам очень рад что кака обнаружилась)
и конечно сообщу о результатах!
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
17.04.2012, 21:58
Samrisbe, там вродь по-русски написано:
List index out of bounds (0)
, т.е., список пуст, вот и поискать бы, какой именно список, и почему он, гад, пуст. Код не смотрел.
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
17.04.2012, 22:29  [ТС]
Нашел методом исключения тот самы глючный лист, все проблема решена...
Данкешон!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.04.2012, 22:29
Помогаю со студенческими работами здесь

List index out of bounds (0)
У меня 2 вопроса... 1. Пишу программку для добавления в листбокс строк из эдит. Есть 2 кнопки: одна добавляет строки, другая удаляет...

list index out of bounds (6)
хочу изменить даные с БД и он выкидывает ошибку list index out of bounds(6) подскажите как с этим бороться.. :)

List index out of bounds(38)
Доброго времени суток. Возможно, вопрос поднимался уже, но конкретно для своей задачи ответ найти не смог. Имеется событие по нажатию...

Ошибка list index out of bounds
for (int i=0; i&lt;Memo2-&gt;Lines-&gt;Count;i++) { ValueListEditor2-&gt;Cells= Memo2-&gt;Lines-&gt;Strings; } Ошибка list index out of bounds ...

Ошибка List index out of bounds(2)
В чем ошибка? void __fastcall TForm2::Button2Click(TObject *Sender) { if (flag) { ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru