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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2008, 12:32   #1
semantics
 
Регистрация: 16.04.2008
Сообщений: 7
По умолчанию загадочный цикл

Кто-нибудь сможет разобраться что у меня происходит?
Цикл по string в процедуре вызывает "Access violation" в вызывающей программе:
(Цикл выделен комментарием)

program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
procedure token1(S:string; Num: integer; out Res:string);
type A200 = array[1..200]of integer;
var
Ln1,i,j,k,Send,Sbeg,L,A1,A2:integer ;
A:A200;
Ch:string[1];
procedure ind(S:string; out Res:A200);
var
i,k:integer; Ch:string[1];
begin
i:=0;
k:=0;
L:=Length(S)-2;
//Если закомментировать этот цикл - все работает
For i:=1 to L do
begin
Ch:=copy(S,i,1);
if((Ch = ',') or (Ch = ']'))
then
begin A[k]:= i; k:=k+1 end;
end;
end;
begin
i:=0;
k:=0;
L:=Length(S)-10;
ind(S,A);
k:= k-1;
writeln('A[1]= '+ IntToStr(A[1]));
writeln('A[2]= '+ IntToStr(A[2]));

A1:= A[Num-1];A2:= A[Num];
A1:= 10; A2:= 20;
writeln(' A1= '+IntToStr(A1)+' A2= '+IntToStr(A2));
Ln1 := A2-A1+1;
writeln('token'+copy(S,A1,Ln1));

Res:=copy(S,22,12);
writeln('token '+copy(S,A1,Ln1)+' Res= '+Res);
end;
var
fFind:Boolean;
i,Res:integer; S1,S,word:string; ss:string;
begin
readln(i);
Ss:=concat('','this ,is, special ,test');
word:='special';
token1(ss,4,S);
writeln('S= '+S);
readln(i);
end.
semantics вне форума Ответить с цитированием
Старый 30.05.2008, 13:09   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Массив объявлен с 1-цы, а присвоение с 0.

type A200 = array[1..200]of integer;
k:=0;
A[k]:= i; k:=k+1
alexBlack вне форума Ответить с цитированием
Старый 30.05.2008, 14:00   #3
semantics
 
Регистрация: 16.04.2008
Сообщений: 7
По умолчанию

Спасибо большое. Никак не могу привыкнуть к этим нулям.
И почему это транслятор не ловит такие ошибки?
semantics вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загадочный NMSMTP InseR Работа с сетью в Delphi 5 13.02.2009 08:14
Цикл... Лёка PHP 5 03.02.2008 21:38
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34
3-ой цикл LeoN Общие вопросы Delphi 5 12.06.2007 14:15