Q&A

  • 환장하겄습니다. 델파이...
델파이 초짜인데요...

아래 함수는 5자리의 숫자형 문자열을 뒤에서 부터 '0'을 체크해 '0'이 아닌 부분을 만나면 for 문을 빠져나와 앞에서 부터 '0'이 아닌 부분까지 텍스트에 저장하는 부분으로 만들었는데요.

한자리씩 모자랍니다.

고수님들 어디가 잘못됐는지 좀 봐주세요.


procedure TfrmAcc0000.edtGj050Exit(Sender: TObject);
var
        Value : String;
        i, j : Integer;
        ChkStr : String;
begin
        j := 0;

        Value := TEdit(Sender).Text;
        Value := UpperCase(Value);


        ChkStr := edtGj010.Text;   <-- 여기에는 10000, 11000, 11100 이 들어 있음, 예) 10000 일 경우는 1이 11000 일 경우는 11이 나와야 합니다.

        if Value = 'G' then
        begin
                for j := Length(ChkStr) downto 1 do
                begin
                        if Copy(ChkStr, j, 1) <> '0' then
                                Break;
                end;
                edtGj070.Text := Copy(ChkStr, 1, j );

        end else
                edtGj070.Text := '';


        TEdit(Sender).Text := Value;
        panMsg.Caption := '';  
end;
3  COMMENTS
  • Profile
    바보래요 2004.06.02 22:05


    if ChkStr[j]  <> '0' then Break;
  • Profile
    왕초보 2004.06.02 23:04



  • Profile
    ^^! 2004.06.02 21:48


    음 제가 아는 분인 듯 한데여 ^^!

            ChkStr := edtGj010.Text;   <-- 여기에는 10000, 11000, 11100 이 들어 있음, 예) 10000 일 경우는 1이 11000 일 경우는 11이 나와야 합니다.

            if Value = 'G' then
            begin
                    for j := Length(ChkStr) downto 1 do
                    begin
                            if Copy(ChkStr, j, 1) <> '0' then
                                    Break;
                    end;
                    edtGj070.Text := Copy(ChkStr, 1, j );

            end else
                    edtGj070.Text := '';

    이부분은 아무이상이 없습니다.
    올바르게 나오는데요...
    제가 Delphi7에서 이함수 그대로 테스트 해본바로는 올바르게 되네요!
    다시한번 잘확인해 보세요!
    수고하세요!