Q&A

  • 배열에서 불러와 검색값 결과가...급합니다..T.T
안녕하세요....

edit에서 값을 abcde.aaa를 입력하면은 case에서 찾아 결과 값이 출력이 되는데...

이상하게 맞지 않으면 abcde.fff라는 결과 값이 나와야 하는데...되질 않아요...

어디가 잘못되었는지...잘모르겠어요...T.T

그리고 배열에 값이 많이 들어가야 하는데...만약에 data.ini로 만들어 aaa, bbb, cc가

있다면 어떻게 불러와서 배열로 한거와 같이 해야 하는지 잘모르겠어요...

고수님 도와 주세요...



procedure TForm1.Button1Click(Sender: TObject);

const

cont:array[1..3] of string = ('aaa','.bb','.cc');

var

TempStr : string;

i : integer;

begin

for i := 1 to 3 do

begin

TempStr := copy(edit1.text,length(edit1.text)-2,3);

if cont[i] = TempStr then

begin

case i of

1 : edit2.text := 'abcde.aaa';

2 : edit2.text := 'abcde.bb';

3 : edit2.text := 'abcde.cc';

else

edit2.text := 'abcde.fff';

end;end;end;

end;

1  COMMENTS
  • Profile
    임형호 2000.09.08 22:05
    TempStr := copy(edit1.text,length(edit1.text)-2,3);

    무조건 끝에서 3글자만 불러오는건가 보군요.



    만약 입력 글자를 'abcde.aaa'를 넣었다면

    TempStr에는 copy(edit1.text,7,3) 이니까... 'aaa' 가 됩니다.

    그러니까

    if cont[i] = TempStr then

    이구문이 true가되어서 아래의 case문을 실행하게 됩니다.

    그런데 만약에 TempStr 값에 'aaa' 나 '.bb',나 '.cc' 가 아닌경우에는

    아예 case문조차 실행이 되지를 않게 됩니다.

    그러니까..

    당근 case문에 else조차 실행이 안되겠죠.



    //허술한 코딩이니까 참고만하세요.



    procedure TForm1.Button1Click(Sender: TObject);

    const

    cont:array[1..3] of string = ('aaa','.bb','.cc');

    var

    TempStr : string;

    i : integer;

    begin



    TempStr := copy(edit1.text,length(edit1.text)-2,3);

    for i := 1 to 3 do begin

    if cont[i]=TempStr then begin

    edit2.text:=cont[i] ;

    break;

    end;



    edit2.text:='abcde.fff';



    end; //for문의 end



    end;







    초보만세 wrote:

    > 안녕하세요....

    > edit에서 값을 를 입력하면은 case에서 찾아 결과 값이 출력이 되는데...

    > 이상하게 맞지 않으면 abcde.fff라는 결과 값이 나와야 하는데...되질 않아요...

    > 어디가 잘못되었는지...잘모르겠어요...T.T

    > 그리고 배열에 값이 많이 들어가야 하는데...만약에 data.ini로 만들어 aaa, bbb, cc가

    > 있다면 어떻게 불러와서 배열로 한거와 같이 해야 하는지 잘모르겠어요...

    > 고수님 도와 주세요...

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > const

    > cont:array[1..3] of string = ('aaa','.bb','.cc');

    > var

    > TempStr : string;

    > i : integer;

    > begin

    > for i := 1 to 3 do

    > begin

    > TempStr := copy(edit1.text,length(edit1.text)-2,3);

    > if cont[i] = TempStr then

    > begin

    > case i of

    > 1 : edit2.text := 'abcde.aaa';

    > 2 : edit2.text := 'abcde.bb';

    > 3 : edit2.text := 'abcde.cc';

    > else

    > edit2.text := 'abcde.fff';

    > end;end;end;

    > end;