|
네 2번 실행되네요. 그건 if(pfbuf[i] == '\n') 로 바꾸면 될것 같구요.
작성한 예제는 이것이 가능한건지 올린거구요.
가능하다면 실제로는 메모장에 많은 명령어들이 들어갑니다.
[역시 이것도 제가 작성하기 때문에 내부 함수명은 알지요. (함수호출외에 다른명령어도 포함) ]
제가 의도하는 것은 한번 프로그램을 구현한 후에 메모장 내용만 바꾸어서 바로 사용하기 위함입니다.
[새로 컴파일도 필요없고 메모장 내용만 바꾸면 실행가능하게]
if(str == "Test_ft();" ) Test_ft(); 이렇게 사용은 아니구요.
순수하게 메모장 내용이 실행되게 하려는 것입니다.
지나는이 님이 쓰신 글 :
: if( (pfbuf[i] == '\n') || (pfbuf[i] == '\r') )
: {
: // 여기서 어떻게 작성해야 할지 모르겠습니다.
: // str를 보면 Test_ft(); 들어가 있습니다.
: if(str == "Test_ft();" ) Test_ft(); /// 이렇게요??
: }
: // 두번 실행될 수 있고요, (\n\r 로 끝났을 수도 있으니까.
: // 외부에서 커맨드로 사용하겠다라는 의도이신듯 합니다. 함수명 대신 커맨드를 만드시는게.. 좋을듯..
: // 내부 함수명을 모르는 사람은 못 씀..
:
:
:
: unitas 님이 쓰신 글 :
: : 메모장 등에 내용을 명령어로 사용하려면 어떻게 해야 하나요?
: :
: : 예를 들어 메모장에 내용을 Test_ft(); 라고 입력 후 엔터키를 치고 저장을 합니다.
: :
: : 그리고 소스에서 아래처럼 작성을 했습니다.
: : 버튼을 클릭하면 메모장의 내용을 사용해서 "Test Success" 라는 메세지를 받을려고 합니다.
: : void __fastcall TfrmMain::Button1Click(TObject *Sender)
: : {
: : String strName, str = "";
: : int hwnd, flen;
: : char *pfbuf;
: :
: : strName = "C:\\PROJECT\\test.txt";
: :
: : if((hwnd = FileOpen(strName.c_str(), fmOpenRead)) == NULL)
: : return;
: :
: : flen = FileSeek(hwnd,0,2);
: : FileSeek(hwnd,0,0);
: : pfbuf = new BYTE[flen];
: : FileRead(hwnd, pfbuf, flen);
: : FileClose(hwnd);
: :
: : for(int i = 0; i < flen; i++)
: : {
: : if( (pfbuf[i] == '\n') || (pfbuf[i] == '\r') )
: : {
: : // 여기서 어떻게 작성해야 할지 모르겠습니다.
: : // str를 보면 Test_ft(); 들어가 있습니다.
: : }
: : if( !((pfbuf[i] == '\n') || (pfbuf[i] == '\r')) )
: : str += pfbuf[i];
: : }
: : }
: : //---------------------------------------------------------------------------
: :
: : void TfrmMain::Test_ft() // 메모장에 작성한 호출하려는 함수
: : {
: : ShowMessage("Test Success");
: : }
: : //---------------------------------------------------------------------------
|