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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2010, 09:13   #1
DeEgo
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 12
По умолчанию "Project 1.exe raised exception class EInvalidPointer with messege 'Invalid pointer operetion'"..

Доброго времени суток Помогите, пожалуйста. Пишу свою первую программу. Компилятор delphi 2009. Компиляция проходит без ошибок, но дебагер время от времени ругается. После выхода из программы пишет "Project 1.exe raised exception class EInvalidPointer with messege 'Invalid pointer operetion'"..
Я вот думаю дело в определении строковых переменных..

Код:
var
   text, buf, str, str1: String;
В голову пришла только такая мысль.. но что то мне подсказывает что это не верно
str1:='0000000000';
buf:='000000';

заранее всем спасибо!!

Код:
procedure TForm1.Button1Click(Sender: TObject);
label
m1;
  var
   text, buf, str, str1: String;

 key: array of integer;
 k, i,j,n,m: integer;
begin

  text:=Edit1.Text;
  str:=Edit2.Text;
  str1:='0000000000';
  buf:='000000';
  m:=length(text);
  n:=length(str);
  SetLength(key, n);

  for i:=1 to n do
  begin
  key[i]:=StrToInt(str[i]);
  end;



  k:=1; j:=1;
m1:
  for i:= 1 to n do
    begin
      buf[key[i]]:=text[j];
      j:=j+1;
      if j>m then
      text[j]:='_';
    end;
for i:=1 to n do
  begin
    str1[k]:=buf[i];
    k:=k+1;
  end;
   if j<=m then  goto m1;
  SetLength(str1,k-1);
  edit3.text:=str1;

end;
и еще после того, как закроешь сообщение дебагера выходит еще одно "Project 1.exe raised exception class EAcceessViolation with message 'Access violation at address 00478D0E in module '1.exe'....
Вложения
Тип файла: rar Шифрование.rar (230.8 Кб, 7 просмотров)

Последний раз редактировалось Stilet; 27.02.2010 в 10:38.
DeEgo вне форума Ответить с цитированием
Старый 27.02.2010, 10:46   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Здесь :
Код:
for i:= 1 to n do
begin
buf[key[i]]:=text[j];
j:=j+1;
if j>m then
text[j]:='_';
end;
ты работаешь с buf у которого длина не всегда равна длине str, поэтому и такая ошибка, ведь цикл по i идет до длины str.
Выход: уровняй длины buf и str до циклов.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 27.02.2010, 13:12   #3
DeEgo
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 12
По умолчанию

Спасибо большое=)
а функция SetLength() для символьных переменных будет работать? Т.е. такая запись верна ?
Цитата:
SetLength(buf, n);
DeEgo вне форума Ответить с цитированием
Старый 28.02.2010, 07:51   #4
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 927
По умолчанию

SetLength(buf, n); -----> тут
kta87 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Project Project1.exe raised exception class EnvalidOP Rock'n'rolla Безопасность, Шифрование 16 20.01.2010 18:39
Exception in thread "main" java.lang.ClassFormatError: Truncated class file Pti44ka Общие вопросы по Java, Java SE, Kotlin 1 19.11.2009 19:16
"Project Project1.exe raised class EConvertError with message'''is not a valid floating point value'." Doz1metr Помощь студентам 9 24.06.2009 19:06
Ошибка:"Project raised exception class EConvertError..." Gambit90 Помощь студентам 6 14.01.2009 14:12
raised exception class EIdSocketError with message' Socket Error # 10022 Invalid argument eldar Работа с сетью в Delphi 16 08.08.2008 23:49