Q&A

  • 바코드스캐너로 읽은 내용 중복검사?
아래 소스처럼 바코드스캐너로 내용을 읽어 들어 중복검사를 하는프로그램을 구현 중입니다.
근데 내용을 읽어 들이면 소문자로 나타납니다. 이것을 대문자로 나타나게 변환을 어떻게 하는지?

그리고 입력이 되면 마우스로 버튼을 눌러야만 내용이 메모로 이동되는데 이것을
마우스와 함께 키보드의 Enter 키를 눌러도 내용이 넘을 갈 수 있도록 하려면
어떻게 구현을 해야 되는지 소스수정 좀 해주세요..
초보라 넘 답답합니다..수고하세요..

procedure TBarcodeForm.btnInputClick(Sender: TObject);
var
  I,Strpos : integer;
  Bigyo : string;
begin
        If EdReader.Text = '' then
    begin
          ShowMessage('다시 입력하세요 !!');
    EdReader.SetFocus;
    end
  else
    begin
      if strtoint(lcount.caption) <> 0 then
       begin
        for I := 0 to strtoint(lcount.caption)-1 do
           begin
            strpos := pos('     --> ', mmlist.lines[i]);
            bigyo := copy(mmlist.Lines.Strings[i],0,strpos-1);
           if bigyo = EdReader.Text then
            begin
              showmessage('중복된 데이타 입니다. 다시 확인 바랍니다.!');
                                            EdReader.Text := '';
                                            EdReader.SetFocus;
              exit;
            end;
           end;
       end;
                     mmlist.Lines.Add(Edreader.text + '     --> ' + FormatDateTime('YYYY"-"MM"-"DD Am/Pm HH"-"NN SS', Now));
                    EdReader.Text := '';
                    EdReader.SetFocus;
                    lcount.Caption := intTostr(mmlist.lines.count);
    end;
end;
3  COMMENTS
  • Profile
    Runo 2006.08.25 18:02
    올려드린 소스로 확인해 보세요.
    몇라인 추가 되었네요.

    바코드 스캐너의 Terminate setting값이 "cr"로 되어있다면 키보드로 엔터를 친 흉내를 낼겁니다.



  • Profile
    신성운 2006.08.26 00:52
    Runo 님!

    문의사항이 있습니다..
    하기 처럼 하면 Edit에 나타나지 않고 바로 memo로 옮겨져 중복검사를 하든데
    바로 옮겨지지 않고 edit창에서 확인하고 Enter  Key를 눌렸을때  옮겨지게 할려면
    keyPress를 해야 되나요..

    한가지 더 추가해서 소스 보시면 아시겠지만 저장한 Text 파일을 불러와 데이타베이스
    처럼 중복검사를 할 수 있게 할 순없는지 아님 1개의 파일에서 Update되면서
    데이타베이스처럼 중복검사를 하게 할려면 어떻게 하는지??

    너무 몰라서 죄송합니다..계속 공부는 하는데 좀 딸리네요..
    한번더 부탁드립니다...
    감사합니다..



  • Profile
    Runo 2006.08.29 04:51
    에궁~ 제가 넘 늦게 본듯 싶네요.
    지금쯤 해결 하셨을듯 싶은데..

    첫번째->
    키보드 enter key를 눌렀을때 옮겨지게 하려면 바코드 스캐너의 셋팅값을 변경해 주셔야 할듯 싶습니다.
    edit의 keypress나 keydown event에서 바코드스캐너의 cr값과 키보드의 enter값을 구분하기는 어렵습니다.
    바코드 스캐너의 terminate값을 cr이 아닌 다른값으로 셋팅해 주시면 원하시는 내용이 될것 같습니다.


    두번째->
    이미 저장된 파일을 불러와서 바코드의 중복검사를 할 수는 있지만 그렇게 하자면...
    로직이 복잡하게 되고 또 파일의 수가 많아지게 되면 중복검사시 속도가 느려지게 되므로 비 추천입니다.
    마찬가지로 1개의 파일로도 중복검사가 가능하지만 데이타양이 많아 질수록 속도는 점점 느려지겠지요..

    제생각엔 데이타베이스를 이용하여 구현하시는게 가장 효율면에서 좋을듯 싶습니다.

    답변이