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

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

01.12.2015, 22:56. Показов 690. Ответов 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2015, 22:56
Ответы с готовыми решениями:

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

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

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

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

3
Практикантроп
4680 / 2600 / 496
Регистрация: 23.09.2011
Сообщений: 5,580
01.12.2015, 23:18 2
Цитата Сообщение от Markell Посмотреть сообщение
Где ошибка и что исправить?
У вас <c> - константа цикла по j - внутри цикла переприсваивается, при какой-то итерации будет вылет за пределы списка Memo2 (зависит от длины msg).
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 74
01.12.2015, 23:31  [ТС] 3
Уважаемый, я попробовал вынести строку [ c=msg.Length(); ] вверх цикла, но тогда шифрование, при нажатии на клавишу вообще не происходит. Помоги мне, если знаешь как совладать с этой бедой
0
Практикантроп
4680 / 2600 / 496
Регистрация: 23.09.2011
Сообщений: 5,580
02.12.2015, 00:01 4
.. полночь близится, а разбирать чужую программу - это кошмар (сон такой) обеспечен. Можно в условии цикла не трогать с, а записать просто - ; 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2015, 00:01

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.