Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 팁&트릭
Delphi Programming Tip&Tricks
[173] 팁! 컴맨드라인 인자 받아오기
박지훈.임프 [cbuilder] 11777 읽음    1999-06-04 00:00
임프랍니다..
오늘은 팁이 너무 늦었죠.. 기다렸을 분들껜 정말 죄송하구요.. 쩝~

오늘의 팁은 명령행인자 받아오기 입니다.
윈도우즈 어플리케이션에서 어플리케이션 아이콘 위로 다른 데이터화일을 드랍
했을때 처리도 역시 명령행 인자를 통해서 하므로, 드래그 앤 드랍 처리를
해주려면 반드시 명령행 인자를 처리해줘야 합니다.

명령행 인자의 갯수는 vcl 함수 ParamCount() 로
알아낼 수 있구, 그 값은 역시 vcl 함수인 ParamStr()로 알아낼 수 있습니다.
일단 간단한 예제를 봅시다.

빈 폼 위에 메모 컨트롤을 하나 놓구, 다음과 같은 코드를 적어봅시다.

void __fastcall TForm1::FormShow(TObject *Sender)
{
    for(int i=0; i<=ParamCount(); i++)
        Memo1->Lines->Add(ParamStr(i));
}


procedure TForm1.FormShow(Sender: TObject);
var
  i: integer;
begin
  for i:=0 to ParamCount do
    Memo1.Lines.Add(ParamStr(i));
end;


이렇게 하면 간단히 명령행 인자가 메모의 각 라인으로 읽혀집니다.
IDE 안에서 테스트를 해보시려면 메뉴에서 Run->Parameters...->Parameters 에다가
뭐라고 잔뜩 입력해놓고 실행해보시면 됩니다.

주의할 것은... for문을 ParamCount보다 1 적을 때까지 돌린 것이 아니라, ParamCount와
같을 때까지 돌렸다는 겁니다.
ParamCount() 함수는 프로그램 자체의 패스로 넘겨지는 ParamStr(0)를 갯수에 포함
하지 않는데 ParamStr() 은 포함하기 때문이죠.

넘 간단한 거였나요? 하지만, 제대로 알지 못하면 나중에 황당한 꼴을
당할수도 있는 팁이랍니다.
그럼, 도움되시길...

독립문에서 임펠리테리였습니다.

+ -

관련 글 리스트
173 팁! 컴맨드라인 인자 받아오기 박지훈.임프 11777 1999/06/04
(링크)     C++Builder Tip'N Tricks > 팁! 컴맨드라인 인자 받아오기
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.