Project Project1.exe Raised Exception Class Econverterror With Message

  • Автор темы BattleMage
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B

BattleMage

Гость
#1
Доброго времени суток! Очередной вопрос.

Код:
 char stroka[80];
int dlina,b,a;
unsigned int e;
for (i=1;i<StringGrid3->RowCount;i++)
{
b=0;
strcat(stroka,StringGrid3->Cells[1][i].c_str());
for (e=0;e<strlen(stroka);e++) b=b+stroka[e];
b=b%StringGrid3->RowCount;
a=StrToInt(StringGrid4->Cells[0][b]);
if (a!=0) StringGrid3->Cells[3][a]=i; else a=i;
}
При коомпиляции ошибок не показывает, но при запуске появляется сообщение: Project Project1.exe raised exception class EConvertError with message "" is not valid integer value'...

А когда закомментируешь строку for (e=0;e<strlen(stroka);e++) b=b+stroka[e]; программа хорошо запускется, подозреваю - тут ошибка...


/moderator/ - перестаньте создавать темы с названиями спасите помогите!!! И про теги кода не забывай
 
P

Pasha

Гость
#2
Для: BattleMage
Если в начале кода вставить "return;", то программа тоже начнет хорошо запускаться. Наверное ошибка в строке "char stroka[80];"
 
B

BattleMage

Гость
#3
Как это наверное? Объявил массив типа char размером 80.
Слушай что я хочу сделать, может вообще неправильно пишу:
сосчитать сумму кодов символов какого-то слова из StringGrid. То есть если слово "abc", то он должен выдать 97+98+99=294
 
04.09.2006
2 566
2
#4
<!--QuoteBegin-BattleMage+28:09:2007, 17:35 -->
<span class="vbquote">(BattleMage @ 28:09:2007, 17:35 )</span><!--QuoteEBegin-->Как это наверное?
[snapback]80042" rel="nofollow" target="_blank[/snapback]​
[/quote]
Головой подумай! Что делает strcat? И что будет если использовать ее в цикле?
И вообще, научись пользоваться отладчиком
 
B

BattleMage

Гость
#5
Извините, что написал "Помогите!!!" - просто уже второй час делаю и ни черта не выходит...

Немного подправил код:
Код:
 char *stroka;
unsigned int e, b, a, dlina;
for (i=1;i<StringGrid3->RowCount;i++)
{
b=0;
dlina=strlen(StringGrid3->Cells[1][i].c_str());
stroka=(char*)malloc(dlina*sizeof(char));
strcat(stroka,StringGrid3->Cells[1][i].c_str());
for (e=0;e<dlina;e++) b=b+stroka[e];
b=b%StringGrid3->RowCount;
a=StrToInt(StringGrid4->Cells[0][b]);
if (a!=0) StringGrid3->Cells[3][a]=i; else a=i;
free(stroka);
}
Про strcat подумал: создаю в цикле динамический массив, а затем его очищаю... В любом случае ошибка не в этом. Комутеру не подуше строка: for (e=0;e<dlina;e++) b=b+stroka[e];
Может я не так думаю: что храниться в stroka[e] код e-го символа?
 
B

BattleMage

Гость
#6
Ну так вы подскажите? Я же не прошу программу написать, а всего лишь ответить на вопрос...

Будет ли у меня этот цикл считать сумму кодов символов, входящих в слово?
for (e=0;e<dlina;e++) b=b+stroka[e];
 
P

Pasha

Гость
#7
Для: BattleMage
Тебе знакомо понятие "отладка"?
Код:
// до этих строк все еще понятно:
dlina=strlen(StringGrid3->Cells[1][i].c_str());
stroka=(char*)malloc(dlina*sizeof(char));
strcat(stroka,StringGrid3->Cells[1][i].c_str());
на
stroka = StringGrid3->Cells[1][i].c_str();
dlina = strlen(stroka);

// это еще тоже можно понять:
for (e=0;e<dlina;e++) b=b+stroka[e];

// но что ты пытаешься сделать тут, для меня меня загадка:
b=b%StringGrid3->RowCount;
a=StrToInt(StringGrid4->Cells[0][b]);
if (a!=0) StringGrid3->Cells[3][a]=i; else a=i;
 
04.09.2006
2 566
2
#8
Код:
...
b=0;
dlina=strlen(StringGrid3->Cells[1][i].c_str());
strcpy(stroka,StringGrid3->Cells[1][i].c_str());
for (e=0;e<dlina;e++) b=b+stroka[e];
...
P.S. еще раз увижу код без соответствующих тегов - забаню на неделю
 
B

BattleMage

Гость
#9
"P.S. еще раз увижу код без соответствующих тегов - забаню на неделю"
Комментарии написать что ли к каждой строке?
 
04.09.2006
2 566
2
#10
Для: BattleMage
Когда добавляешь сообщение с кодом, код выделяешь и нажимаешь магическую кнопочку в виде решетки в панели инструментов окна добавления сообщения
 
Статус
Закрыто для дальнейших ответов.