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

Что мне делать с этой ошибкой: ThrowIfOutOfRange(idx); // Should Range-checking be optional to avoid overhead?

01.12.2015, 22:56. Показов 1389. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господа, обращаюсь к вам с огромной просьбой помочь!!!
Делаю проект шифрования с методом гаммирования, все почти сделал, в кончоли работает, при переложении на визуал получается ерунда
(код консоли:
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
#pragma hdrstop
#pragma argsused
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
 
int main()
{
 
    char msg[80];
    int key;
    char n;
    cout << "Plaintext: ";
    gets (msg); 
     cout << "key: " ;
    cin>>key;
 
    for ( n = 0; n < strlen(msg); n++)
        msg[n] = msg[n] ^ key; 
    cout << "Ciphertext: " << msg << "\n";
 
    system ("pause");
    return 0;
}
)

При компиляции появляется ошибка, с последующим открытием page с сообщением ThrowIfOutOfRange(idx); // Should Range-checking be optional to avoid overhead ??

Сам собственно код:
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x=0,p;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 AnsiString msg,key,y;
int c,n;
key=Edit1->Text;
c=Memo2->Lines->Count;
 
 
for(int j=0;j<c;j++)
{
msg=Memo2->Lines->Strings[j];
c=msg.Length();
y="";
for(int i=1;i<=c;i++)
{
msg[n] = msg[n] ^ key;
}
Memo3->Lines->Add(y);
}
}
Где ошибка и что исправить?)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.12.2015, 22:56
Ответы с готовыми решениями:

ThrowIfOutOfRange(idx)
Вообщем,нужно удалить многострочный комментарий. s=st.Length(); st=&quot;&quot;; st1=&quot;&quot;; st=Memo2-&gt;Lines-&gt;Text; for(int i=1;...

Как установить Turbo Delphi ? Что делать с этой ошибкой ?
Что делать, если вылазит такая ошибка ? Устанавливал по этой инструкции: Порядок установки компонентов Delphi6 1.MSXML ...

Подскажите что мне делать с ошибкой [Linker Error] Unresolved external 'Btsdk_Init()' referenced from UNIT1.OBJ
Здравствуйте, помогите пожалуйста. Скачал с сайта http://www.bluesoleil.com/ библиотеку для работы с блютуз. В нее входит 4-е h...

3
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
01.12.2015, 23:18
Цитата Сообщение от Markell Посмотреть сообщение
Где ошибка и что исправить?
У вас <c> - константа цикла по j - внутри цикла переприсваивается, при какой-то итерации будет вылет за пределы списка Memo2 (зависит от длины msg).
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 74
01.12.2015, 23:31  [ТС]
Уважаемый, я попробовал вынести строку [ c=msg.Length(); ] вверх цикла, но тогда шифрование, при нажатии на клавишу вообще не происходит. Помоги мне, если знаешь как совладать с этой бедой
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
02.12.2015, 00:01
.. полночь близится, а разбирать чужую программу - это кошмар (сон такой) обеспечен. Можно в условии цикла не трогать с, а записать просто - ; j<Memo2->Lines->Count; но там дальше есть еще y, который прибавляется в мэмо3. Но он как установился в цикле < y=""; > в "пусто", так с ним ничего и не делается. Просто напряги фантазию и пройди по своему циклу, с разбором каждой строчки (но лучше на свежую голову...).

Добавлено через 6 минут
П.С. похоже, что этот фрагмент составлен бездумно (например: в цикле по i используется некое n как индекс символа в слове. Символ этот пытаешься "отксорить" целой строкой!... ну и т.д. . Лучше проси "осведомленных" растолковать смысл каждой строчки цикла, который или скопирован неверно, или составлялся без понимания сути этих команд.

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
  for(int j=0;j<Memo2->Lines->Count;j++)
  {
    msg=Memo2->Lines->Strings[j];
    c=msg.Length();
    y="";
    for(int i=1;i<=c;i++)
    {
      msg[i] ^= key[1];
      y += msg[i];
    }
    Memo3->Lines->Add(y);
  }
- в предположении, что в эдит1 - один символ-маска.

Добавлено через 8 минут
И на сон грядущий...
Нормальная шифровка все равно не получится, потому что мэмо3 ожидает нормальные, читаемые символы, а в результате операции XOR двух символов скорее всего получится что-то невразумительное, - даже ноль при совпадении. Как последовательность байтов это всё еще можно представить, но как текст - нет. Разве что каждый символ развернуть его хэкс-представлением (IntToHex((BYTE)y[n],2); ).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2015, 00:01
Помогаю со студенческими работами здесь

Что делать с этой ошибкой: "LNK2019: ссылка на неразрешенный внешний символ _WinMain@16"?
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в функции...

Что делать с Optional в слое сервисов?
Dao слой возвращает Optional. В сервисе лучше также возвращать Optional и работать с ним наверху или же делать get()?

Вирусы PUP.Optional.MailRu не удаляемые. Что делать?
Доброго времени суток! На моем компьютере программой Malwarebytes с недавнего времени постоянно определяются 2 вируса, которые не удаляются...

Вирус PUP.Optional.MailRU не удаляется. Что делать?
это опа полная, не хочется комп полностью переустанавливать, avast не находит вирусы, Malwarebytes тоже ничего не находит или я уже удалил...

Стоит ли мне делать бд по этой схеме
нужно сделать БД на примере производства печений.перед тем как начать делать хотелось бы узнать ваше мнение о схеме которую я сделал.стоит...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru