좋은 아침이죠^^*. 초보하나예요.
아무리 매뉴얼을 봐도 이해가 가질 않는 부분과 찾을수 없는 부분이 있어서 이렇게 질문드려요.
<!--CodeS-->
Var
i : Interger;
gcodeTemp : String;
for ....
// 목적: loop 배열값의 존재여부 파악.
// 조건1: 존재하지 않을 경우 -1 값이 부여됨.
// 조건2: 존재할 경우 해당배열의 번호값이 부여됨.
i :=Memo1.Lines.IndexOf(gcodeTemp);
if (i = -1) then
memo1.Lines.Add(gcodeTemp)
else if (i <> -1) then begin
showMessage(' 추출 대상이 존재하지 않습니다. ');
break;
end;
i := nil;
end;
<!--CodeE-->
for loop 를 돌면서 gcodeTemp 라는 배열값을 가져와서 memo1 에 존재하는지 여부를 확인하고 있을 없을 경우(i=-1) memo1 에 값을 삽입하고, 아닐 경우 메세지를 출력하고 루프를 멈추는 조건이구요.
그 후 해당 i 의 값을 해제해주려고 하는데 두가지다 비정상적으로 작동을 하거든요.
너무 황당하신가요?? 다른 프로그래밍 할때하고 너무 다른 조건은 아니라고 생각하는데 조금 다르게 반응을 해서 어떻게 하여야 할지 도무지 모르겠거든요.
변수형별로 nil 사용방법 좀 가르쳐주세요...찾아도 없더라구요. ㅠ.ㅡ;;;
아참 루프를 돌려서 나오는 값을 보니까요.
바로 이전 로프의 값을 i 가 갖고 있었어요.
답변 부탁드립니다...
메모리 해제를 위해서인가요?
그냥 지역변수로 잡혀 있는거면 i를 더 쓸일이 없다면 아무작업도 하지 않으셔도 됩니다.
i := nil;
이건 그냥 빼시면 될거 같구요..
nil은 포인터형에 쓰입니다.