Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 24.05.2019
Сообщений: 42
Builder 6

Ошибка List index out of bounds(2)

05.03.2020, 18:28. Показов 1778. Ответов 8

Студворк — интернет-сервис помощи студентам
Как исправить ошибку?

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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Memo1->Clear();
 
if(FileExists("C:\\Users\\Gamer\\Desktop\\Translate(ver1.1)\\tr.txt"))
{
 TStringList *list = new TStringList();
 list->LoadFromFile("C:\\Users\\Gamer\\Desktop\\Translate(ver1.1)\\tr.txt");
 int k=Memo1->Lines->Count;
 for(int i = 0; i < list->Count; i++)
 {
   if(AnsiPos(Edit1->Text.UpperCase(),list->Strings[i].UpperCase()))
   {
    //list->DelimitedText = list->Strings[i];// здесь ошибка(вывод слова до пробила)
     Memo1->Lines->Add(list->Strings[i]);
     break;
   }
 }
 
 if(Memo1->Lines->Count ==k)
 {
   Memo1->Lines->Add("Даного слова немає у словнику :( " );
 }
 
delete list;
list = NULL;
 
}
 
else {
 
  ShowMessage("файл не знайдено :( ");
    }
 
 
}
//---------------------------------------------------------------------------
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2020, 18:28
Ответы с готовыми решениями:

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

Ошибка 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 (0) ошибка EStringList
Всем привет! У меня возникла проблема :( Раньше программа работала без проблем но сейчас почемуто выдает такую ошибку: class...

8
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
05.03.2020, 22:44
Цитата Сообщение от Avalanche322 Посмотреть сообщение
list->DelimitedText = list->Strings[i];// здесь ошибка(вывод слова до пробила)
Вот как я представляю себе действия этой строки (команды)...- можете со мной поспорить: берётся в цикле очередная строчка списка list и весь этот список заменяется новым, полученным из этой строчки путём разбиения её на слова по разграничителю (delimiter). Далее следует присвоение ->Add(list->Strings[i]). Теперь допустим, что индекс i имеет значение 3, а вновь созданный список list из строки №3, содержащей всего два слова (это для определённости; менее индекса i) - этой строки №3 не имеет. То-есть вы пытаетесь добавить в Memo несуществующую уже строку. Согласитесь - не логично. Модифицировать в цикле элементы этого самого цикла предельно опасно, тем более, что компилятор такие ляпы проконтролировать как правило не может.
1
1 / 1 / 0
Регистрация: 24.05.2019
Сообщений: 42
05.03.2020, 22:51  [ТС]
Спасибо. Но как тогда правильно сделать?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
05.03.2020, 22:55
Пожалуйста.
Думайте. Технику дела вам здесь подскажут, - я уверен. А логика - это на вашей стороне.
0
Модератор
 Аватар для D1973
9915 / 6452 / 2455
Регистрация: 21.01.2014
Сообщений: 27,386
Записей в блоге: 3
06.03.2020, 10:26
Avalanche322, покажите пример Вашего файла tr.txt
0
1 / 1 / 0
Регистрация: 24.05.2019
Сообщений: 42
06.03.2020, 10:50  [ТС]
Пример
Лето summer
Кот cat
Собака dog

И на третьем слове выбивает ета ошибка.
0
Модератор
 Аватар для D1973
9915 / 6452 / 2455
Регистрация: 21.01.2014
Сообщений: 27,386
Записей в блоге: 3
06.03.2020, 12:00
Лучший ответ Сообщение было отмечено Avalanche322 как решение

Решение

Если переделать файл, чтобы он принял вид:
Лето=summer
Кот=cat
Собака=dog
то можно так сделать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   Memo1->Clear();
   String MyFile = "C:\\Users\\Gamer\\Desktop\\Translate(ver1.1)\\tr.txt";
   if(!FileExists(MyFile))
     {
        ShowMessage("файл не знайдено :( ");
        return;
     }
   TStringList *list = new TStringList;
   list->LoadFromFile(MyFile);
   for(int i = 0; i < list->Count; i++)
     if(list->Names[i].UpperCase() == Edit1->Text.UpperCase())
       Memo1->Lines->Add(list->Values[list->Names[i]]);
   delete list;
   if(Memo1->Text.Trim().Length() == 0)
     Memo1->Lines->Add("Даного слова немає у словнику :( " );
}
1
1 / 1 / 0
Регистрация: 24.05.2019
Сообщений: 42
06.03.2020, 12:13  [ТС]
Спасибо. Но можете объяснить эта строку
C++
1
if(Memo1->Text.Trim().Length() == 0)
0
Модератор
 Аватар для D1973
9915 / 6452 / 2455
Регистрация: 21.01.2014
Сообщений: 27,386
Записей в блоге: 3
06.03.2020, 14:09
Это значит, что сначала в тексте, который содержится в Мемо1, с конца и с начала текста убираются все непечатные символы (пробелы, табуляции, переводы строк и т.д.) - Trim(), а потом получается его (текста) длина - Length() и т.к. Вы Мемо1 очищаете при каждом клике на кнопку, то изначальная длина текста будет всегда равна 0. И если длина текста в Мемо1 не изменилась - значит никаких совпадений найдено не было и выдается соответствующее сообщение...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.03.2020, 14:09
Помогаю со студенческими работами здесь

Ошибка в чате - List index out of bounds
Пишу простой чат, всё работает правильно, но тем не менее, при каждом вызове процедур (опишу их ниже), выбрасывается ошибка &quot;List inex...

RadioGroup: ошибка List index of bounds (-1) при снятии галочки
***Дополнение radio_gr_cfg это CheckListBox Вопрос вроде и прост но понять не могу почему так, есть вектор значений, содержащий значения,...

Ошибка при отображении графика: "List index out of bounds (1)"
При попытке отображения графика выбивает &quot;List index out of bounds (1)&quot;. Лазил по форуму, пишут, мол, выход за пределы массива. Сам...

Ошибка при запуске "list index out of bounds (0)".ЧТО делать?
С++ Builder

TSocket (ошибка "List index out of bounds(0)")
Решил сделать мини-чат для собственных нужд. Взял по образцу всё вот отсюда:http://www.codenet.ru/progr/bcb/sockets.php Делал всё строго...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru