Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2011, 06:04   #1
Zinigan
Новичок
Джуниор
 
Регистрация: 20.02.2011
Сообщений: 1
По умолчанию C++ Builder XE. "Range check error" при выполнении программы.

Здравствуйте, не могу понять, в чем ошибка. Цель в том, чтобы из всех строк Memo1 выбрать строки с двузначными числами и записать эти строки в Memo2.
Код:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

AnsiString fname="";
char buf[256];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
boolean Num(char x)
{
boolean r=false;
for (char i ='0'; i <= '9'; i++) {
  if (x==i) r=true;
}
return r;
}

//---------------------------------------------------------------------------
void __fastcall TForm1::Open1Click(TObject *Sender)
{
Memo1->Clear();
Memo2->Clear();
if (OpenDialog1->Execute()) {
fname=OpenDialog1->FileName;
Memo1->Lines->LoadFromFile(fname);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString st;
int i,k;
Memo2->Clear();

for (i=0;i<=Memo1->Lines->Count;i++)
{
st=Memo1->Lines->Strings[i];
int l=st.Length();
for (int k=1;k<=l;k++){
if (Num(st[k]) && Num(st[k+1])&& !Num(st[k+2])) //Ошибка где-то тут и если убрать это условие то все норм
{
Memo2->Lines->Add(st);
k=l;
}
}
}
}

Компилятор ошибок не выдает, но во время выполнения программа выдает:
Zinigan вне форума Ответить с цитированием
Старый 20.02.2011, 08:22   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,708
По умолчанию

У вас нет строки
Код:
Memo1->Lines->Count
а тем более
Код:
st[k]
и далее, при
Код:
k<=l
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка при старте макроса "Automation error (Error 440)" Дятел Microsoft Office Excel 7 29.11.2010 17:34
range check error ChEaTeR-abc Помощь студентам 14 07.07.2010 13:58
Range check error MAcK Общие вопросы Delphi 2 24.03.2010 10:33
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06
при выполнении запроса в столбце "Дата сдачи" оставить даты, которые соответствуют введенному месяцу klukva666 Microsoft Office Access 5 10.03.2008 17:52