![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 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. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Массив объявлен с 1-цы, а присвоение с 0.
type A200 = array[1..200]of integer; k:=0; A[k]:= i; k:=k+1 |
![]() |
![]() |
![]() |
#3 |
Регистрация: 16.04.2008
Сообщений: 7
|
![]()
Спасибо большое. Никак не могу привыкнуть к этим нулям.
И почему это транслятор не ловит такие ошибки? |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Загадочный 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 |