* 질의 실행
mysql> source [파일명]
mysql> source /hosting/backup.sql

이 명령어는 외부에 있는 쿼리(파일)을 실행하는 명령어 입니다.
해당 파일안에는 쿼리문이 들어있어야 합니다.
이 명령어는 쉘상에서 사용하는 mysql ........... < [파일명] 과 같은 결과 입니다.

파일명을 쓸때에는 경로와 함께 적을 수 있으며, 따옴표를 사용하지 않는점을 주의하십시요

* 쉘프롬프트상에서
mysql -u 사용자 -p DB명 < 질의파일

* 프롬프트상에서 질의 실행
mysql mysql -u root -pxxxx -e
> "INSERT INTO db VALUES(
> 'localhost', 'aaa', 'aaa',
> 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y')"

출처는 : 지식인 검색
http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10110&eid=InxS7T26W2kb+hhTRnqS1re1K8Tmb2Q4&qb=bXlzcWwgLnNxbA==&pid=fvwFPsoQsDlssvutbPGsss--102096&sid=SDwiMvIhPEgAAAG@IQo

    // LPCTSTR 정의
    char  buf[] = "1234";

    // LPCTSTR -> CString
    CString s(buf);

    // CString -> BSTR
    BSTR  bstr = s.AllocSysString();
    SysFreeString( bstr ); <-- 반드시 해주어야 한다.

    // "1234" -> BSTR
    BSTR bstr = L"1234";
    SysFreeString( bstr ); <-- 반드시 해주어야 한다.

    // BSTR -> CString





▶ CString -> BYTE

BYTE*   temp;
CString   cmd;
에서 cmd 의 값을 temp에 할당하려 할때.


temp=new BYTE[255];
temp=(LPBYTE)(LPCSTR)cmd;
delete []temp;


or


CString str = _T("abcd");
BYTE* pbyte = new BYTE[256];
int nSize;
nSize = str.GetLength();
CopyMemory( pbyte, str.GetBuffer(nSize), nSize );
pbyte[nSize] = 0;


or


strcpy(szNamePlace,(LPCTSTR)name);

or


CString str = "string";
BYTE* pByte;
pByte = (BYTE*)(LPTSTR)(LPCTSTR)str;


▶ BYTE -> CString

CString testString;
BYTE    testByte;
testString.Format( "%s", testByte );


▶ CString -> BYTE *

CString name = "몽룡이";
 BYTE byte[26] = {0};
 BYTE bName[26] = {0x0,};

 sprintf((char*)byte, "%s", name);
 
 memcpy(bName, byte, 26);


CString strTmp1, strTmp2;
 strTmp1 = "";
 strTmp2 = "";

 for(int i=0; i<26; i++) {
     strTmp1.Format("%02X ", bName[i]);
     strTmp2 += strTmp1;
 }
 MessageBox(strTmp2, "", 0);


26바이트의 크기의 이름이다. 남는 공간은 0으로 채워진다


▶  CString -> int

 CString의 문자열을 바로 숫자로 바꾸는것은
 아직 보지 못했습니다.
 아마 atoi()나 atod()의 C함수를 사용해야 될것 같네요.
 도움말을 참고하세요.


▶  int -> CString

 CString str;
 int i = 6;
 str.Format("%d",i);    // str에 6의 문자가 들어갑니다.


▶  BYTE -> int, int -> BYTE
 
 바로 형변환으로 가능합니다.
 
 bt = (BYTE)i;          // 주의 : 작은 크기로 들어가기 때문에
                        // 255 이상의 값은 엉뚱하게 동작하겠지요.
 i = (int)bt;


CString  => char* 변환

char * ch;
CString *str;

1) ch = (LPSTR)(LPCSTR)str;

2) ch = str.GetBuffer(str.GetLength());
3) wsprintf( ch, "%s", str);



char*  =>  CString 변환

1) str = (LPCSTR)(LPSTR)ch;
2) str = ch;



참고)

LPSTR 은 char* 입니다.

LPSTR : char stirng의 32비트 포인터, char* 와 같다.

LPCTSTR : Constant character String의 32비트 포인터

UINT : 32비트 unsigned형 정수
DWORD : unsigned long int형

BYTE : 8비트 unsigned 정수



1.CString 클래스의 GetBuffer()는 CString을 char *로 바꿔줍니다.

ex) CString strTemp = _T("test");
     char *getTemp=NULL;

     getTemp = malloc(strTemp.GetLength()+1);
     strcpy(getTemp, strTemp.GetBuffer(strTemp.GetLength());
     printf("결과:%sn", getTemp);

     free(getTemp);

2. operator LPCTSTR ()도 마찬가지입니다.

ex) CString strTemp = _T("test");
     char *getTemp = (LPSTR)(LPCSTR)strData;


CString -> BYTE*

CString str="1234";

BYTE *pbyte;

pbyte = (BYTE(LPSTR)(LPCSTR)str;




CString str = _T("abcd");

BYTE* pbyte = new BYTE[256];

int nSize;

nSize = str.GetLength();

CopyMemory( pbyte, str.GetBuffer(nSize), nSize );

pbyte[nSize] = 0;

 

 

CString  => char* 변환

char * ch;
CString *str;

1) ch = (LPSTR)(LPCSTR)str;

2) ch = str.GetBuffer(str.GetLength());
3) wsprintf( ch, "%s", str);

char*  =>  CString 변환

1) str = (LPCSTR)(LPSTR)ch;
2) str = ch;



참고)

LPSTR 은 char* 입니다.

LPSTR : char stirng의 32비트 포인터, char* 와 같다.

LPCTSTR : Constant character String의 32비트 포인터

UINT : 32비트 unsigned형 정수
DWORD : unsigned long int형

BYTE : 8비트 unsigned 정수


참고 : CString을 const char* 형태로 변경 -> (LPTSTR)(LPCTSTR)CString


LPCSTR :  A 32-bit pointer to a constant character string.
LPSTR :  A 32-bit pointer to a character string.
LPCTSTR :  A 32-bit pointer to a constant character string that is portable for Unicode and DBCS.
LPTSTR :  A 32-bit pointer to a character string that is portable for Unicode and DBCS.


출처 : http://tong.nate.com/redyoon/34780867

'etc > old' 카테고리의 다른 글

ニッシンのSEAFOOD NOODLEは おいしいですよ。  (0) 2008.05.28
mysql에서 쿼리 사용방법  (0) 2008.05.28
携帯電話は必要悪(ひつようあく)だ  (0) 2008.05.27
FlashExternalInterface.cpp  (0) 2008.05.26
Blaze DS 설치  (0) 2008.05.26
=======================================================
携帯電話は必要悪(ひつようあく)だ
=======================================================
日本は、子供を有害情報(ゆうがいじょうほう)から守(まも)るため、
小中学生(しょうちゅうがくせい)が携帯電話(けいたいでんわ)を持(も)つことがないように
関係者(かんけいしゃ)に協力(きょうりょく)を促(うなが)している。
韓国もこれと似(に)たような例(れい)として、電話料金(りょうきん)の制限制度(せいげんせいど)があります。
無理(むり)な料金のお支払(しはら)いに多額(たがく)の料金を支払うことによる被害を増(ふ)えて、
政府(せいふ)が作った政策(せいさく)の一つである。
即(すなわ)ち携帯電話は、人生において必要悪(ひつようあく)だと思います。
=======================================================
知らない 單語
=======================================================
政府(せいふ) 정부
増(ふ)える 늘다. 늘어나다. 증가하다. 불어나다.
被害(ひがい) 피해
多額(たがく) 다액. 고액. 액수가 많음.<-> 少額(しょうがく)
支払(しはら)い지불. 지급.
制度(せいど)제도
制限(せいげん) 제한
促(うなが)す (진행을) 촉진시키다. 재촉하다. 독촉하다. 촉구하다.
協力(きょうりょく)협력
関係者(かんけいしゃ) 관계자
持(も)つ (손에) 들다. 지속하다. 지탱하다. 견디다.
有害情報(ゆうがいじょうほう) 유해정보
政策(せいさく) 정책
必要悪(ひつようあく) 필요악
即(すなわ)ち = つまり 즉
=======================================================

'etc > old' 카테고리의 다른 글

mysql에서 쿼리 사용방법  (0) 2008.05.28
문자열 형변환 예시  (0) 2008.05.27
FlashExternalInterface.cpp  (0) 2008.05.26
Blaze DS 설치  (0) 2008.05.26
暇な時間の使用(しよう)  (0) 2008.05.23

Flash 와 App간 통신 방법 3가지를 소개했었는데, AS3로 넘어오면서 watch명령이 없어져서 기존에 사용하던 fscommand/setVariable 방법을 사용할수 없어졌습니다. watch 명령이 아주 비효율적이라 아예 없앴다고 합니다. LocalConnection 방법은 편법성으로 사용자들이 알아낸 방법이므로, ExternalInterface로 Flash와 APP간 통신을 구현했습니다.


1. Application에서 Flash 함수 호출

Actionscript3 소스:
ExternalInterface.addCallback("callFromApp", function(a, b) { return "ok:"+a+","+b; });


C++ 소스:
string invXml = ExternalInterface::MakeInvokeXml("callFromApp", arg1, arg2);
string ret = ExternalInterface::ParseResultXml(m_cFlash.CallFunction(invXml.c_str()).GetBuffer(0));


2. Flash에서 Application 호출

Actionscript3 소스:
ExternalInterface.call("testfunc", "hello", 1, true, 1==2, 1.1);

C++ 소스:
void CFlashTestApp::OnFlashCallShockwaveflash1(LPCTSTR request)
{
   string cmd;
   vector<string> args;

   if (ExternalInterface::ParseInvokeXml(request, cmd, args)) {
      // 함수콜 처리하기~
   }
}


--
Flash와 APP간 통신은 모두 XML을 통해서 이루어집니다.
1. 어플에서 XML을 만들고 파싱해야합니다.
2. 외부 XML 파서를 쓸수 있지만, 사용하는 XML이 복잡하지 않아서 자체 XML 파서를 만들었습니다.
3. Flash에서는 type이 있지만, C++에서는 모두 string으로 받도록 했습니다. C++에서 보낼때도 모두String인자로 보냅니다. 어차피 XML이 문자열로 되어 있으므로, string으로 처리해도 퍼포먼스에 크게 영향이 없을것으로생각되고, Variant를 C++에서 구현하는것은 복잡하고 짜증나는 작업이죠.
4. ActionScript에서 전달한 인자 중 복잡한 자료구조는 파싱하지 못하고,   String, Number,Boolean등과 1차 Array만 파싱하도록 했습니다. C++에서는 인자 받은걸 순서대로 vector에 넣어서 처리를단순화했습니다. Array안에 Array등을 처리하려면 C++에서도 복잡한 자료구조가 필요하고, 그러면 함수처리하는 부분도복잡해질듯해서 단순화했습니다.
5. STL string을 이용해서 파싱했습니다.


XML 파싱 함수들 입니다.

string peek_element(const string &xml);
xml에 포함된 첫 element를 가져옵니다. peek = 엿보기?

bool parse_element(const string &name, string &xml, string &attrs, string &inner);

xml에 포함된 첫 element를 파싱해서 attribute부분과 innerXml부분으로 나누어줍니다. xml에서는 파싱한 부분을 제거합니다.
   name = a
   xml = <a attr="haha">aab</a><b>zzz</b>
이런식으로 호출되면...
   attrs = attr="haha"
   inner = aab
   xml = <b>zzz</b>
이런식으로 값이 바뀝니다.

bool parse_attributes(const string &attrs, StringMap &attrMap);
<element attr1="val1" attr2="val2">
위에 같은 xml attributes을 파싱해서 attrMap에 insert합니다. "attr1"→"val1", "attr1"→"val2"

string xml_encode(const string &x); // <, &, > → &lt;, &amp;, &gt;

string xml_decode(const string &x);
// &lt;, &amp;, &gt; → <, &, >

Flash -> Application XML 예제
ExternalInterface.call("testfunc", "hello", 1, true, 1==2, 1.1);

<invoke name="testfunc" returntype="xml">
   <arguments>
       <string>hello</string>
       <number>1</number>
       <true/>
       <false/>
       <number>1.1</number>
   </arguments>
</invoke>


Flash -> Application XML 파싱 소스:
// external interface 파싱
bool parse_arg(string &xml, string &val)
{
   string attrs, i;
   if (parse_element("string", xml, attrs, i)) {
       val = i;
   } else if (parse_element("number", xml, attrs, i)) {
       val = i;
   } else if (parse_element("true", xml, attrs, i)) {
       val = "true";
   } else if (parse_element("false", xml, attrs, i)) {
       val = "false";
   } else if (parse_element("boolean", xml, attrs, i)) {
       val = i;
   } else {
       return false;
   }
   return true;
}

void parse_args(string &xml, vector<string> &args)
{
   string val;
   while (1) {
       if (parse_arg(xml, val)) {
           args.push_back(val);
       } else {
           break;
       }
   }
}

bool ParseInvokeXml(const string &_xml, string &cmd, vector<string> &args)
{
   string xml=_xml;
   string attrs;
   string innerXml;

   parse_element("invoke", xml, attrs, innerXml);

   StringMap attrMap;
   parse_attributes(attrs, attrMap);

   StringMap::const_iterator f = attrMap.find("name");

   if (f != attrMap.end()) {
       cmd = f->second;
       string elm = peek_element(innerXml);
       string p, i;
       if (parse_element("arguments", innerXml, attrs, i)) {
           innerXml = i;
           if (parse_element("array", innerXml, attrs, i)) {
               innerXml = i;
               while (parse_element("property", innerXml, attrs, i)) {
                   parse_args(i, args);
               }
           } else {
               parse_args(innerXml, args);
           }
       }
   }
   return true;
}

'etc > old' 카테고리의 다른 글

문자열 형변환 예시  (0) 2008.05.27
携帯電話は必要悪(ひつようあく)だ  (0) 2008.05.27
Blaze DS 설치  (0) 2008.05.26
暇な時間の使用(しよう)  (0) 2008.05.23
철콘 근크리트 (鐵コン筋クリ-ト: Tekkon Kinkreet, 2006)  (0) 2008.05.22
초간단 버전임.

1. blaze DS 다운 받기
블레이즈 DS다운로드 주소 => 대략 123메가 (blazeds_turnkey_3-0-0-544.zip 기준)
http://download.macromedia.com/pub/opensource/blazeds/blazeds_turnkey_3-0-0-544.zip

안된다면 아래 주소로 접속하여 따라가서 다운 받는다.
http://opensource.adobe.com/wiki/display/blazeds/BlazeDS

2. 압축 해제

3. 설치폴더\tomcat\bin\startup.bat 실행
=> 톰캣 기동시 You must start the samples database before you can run the samples. 라는 말이 뜨는데
DB테스트를 하려면 설치폴더\sampledb\startdb.bat를 실행시키라는 말임.
[예외처리 - 패스설정]

=> 만약 (영어로) JRE_PATH 또는 JDK_PATH가 설정되지 않았다고 나왔을 경우는
내컴퓨터 - 속성 - 고급 - 환경변수 - 시스템 변수 - 새로 만들기
변수 이름 : JRE_PATH or JDK_PATH
변수 값 : JRE또는 JDK가 설치된 경로를 알맞게 지정해 주면 된다.
[예외처리 - 포트충돌]
=> 기본 사용 포트는 8400인데.. 충돌시 해당 포트를 사용하는 프로그램을 잠시 멈추거나
\tomcat\conf\server.xml에서 8400 이 부분을 다른 포트로 교체하여 적어주면 된다.

4. http://locahost:8400/ 으로 접속한다.
(아래와 같은 그림을 보면 설치 완료)

사용자 삽입 이미지




















참고 톰캣과 샘플 디비 종료할때는 xxxStop.bat를 누르면 됩니다 ㅡ,.ㅡ;;

계속 Continue 해서 공부해야징...
=======================================================
暇な時間の使用(しよう)
=======================================================
1位    男 : テレビやビデオを見る
    女 : テレビやビデオを見る

2位    男 : 友達(ともだち)と会う
    女 : 電話で話す

3位    男 : 電話で話す
    女 : 音楽聴(き)く

4位    男 : 音楽聴(き)く
    女 : ショッピングする

5位    男 : 運動する
    女 : 友達(ともだち)と会う

新聞に出てきた。 私は暇な時間には、インターネットのゲーム(スタークラフト)を楽しんだりするのに..

(インターネットのゲームだという6位にラエンケウドエム)それでも、友人とともに、カラオケに行くか、

サプギェオプサルに焼酎(しょうちゅう)を飲みながら、色(いろ)んな話(はなし)をするのが大好き。

=======================================================
知らない 單語
=======================================================
ともに 함께, 같이
焼酎(しょうちゅう) 소주
=======================================================
質問(しつもん)
=======================================================
聴(き)くと聞(き)くは なにが 違(ちが)いますか。
友人(ゆう‐じん)。友達(ともだち)。朋友(ほうゆう)。差は 何ですか。
=======================================================

'etc > old' 카테고리의 다른 글

FlashExternalInterface.cpp  (0) 2008.05.26
Blaze DS 설치  (0) 2008.05.26
철콘 근크리트 (鐵コン筋クリ-ト: Tekkon Kinkreet, 2006)  (0) 2008.05.22
私(わたし)の 日常(にちじょう)  (0) 2008.05.21
2008年 5月 19日 月曜日  (0) 2008.05.20

사용자 삽입 이미지

http://www.tubeli.net/view/dbfd97cafdb

====================================================================

粗筋(あらすじ)

====================================================================

ムレスとヤクザたちが集(あつ)まって住()んでいる'地獄(じごく)の距離(きょり)ダカラチョ。そこにはお互(たが)いに(たよ)って、自由(じゆう)に生()きて孤(こじ)の少年(しょうねん)クロとシロが住んでいた。'(ねこ)'というニックネムの彼等(かれら)はダカラチョに誰も手をさわられない'(あくどう)'で有名な問題(もんだいじ)だ。しかし、彼らの(より)(どころ)ダカラチョでも、闇(やみ)の影(かげ)て始めた。

====================================================================

知らない 單語

====================================================================

たがい [互い] 서로. 쌍방. 상호.

たよる【る】의지하다. 믿다.

(こじ) 고아

かれら [彼等] 그들. 그 사람들. 저들.

より-どころ [()] 의지할 것[]. 기댈 곳.

(かげ) 그림자

粗筋(あらすじ) 줄거리, 요약

'etc > old' 카테고리의 다른 글

Blaze DS 설치  (0) 2008.05.26
暇な時間の使用(しよう)  (0) 2008.05.23
私(わたし)の 日常(にちじょう)  (0) 2008.05.21
2008年 5月 19日 月曜日  (0) 2008.05.20
연쇄 이벤트 방지(이벤트 버블링) 예시  (0) 2008.05.19
私(わたし)の 日常(にちじょう)

あさ, おきったら, 5時半,

學院に とうちゃくしたら 6時40分,

--> (ジュアンから 會社まで 大約(たいやく) 1時間30分かかります.)

會社に とうちゃくしたら 8~9時, (ふつう 6~7時)

事事事事事事事事事事事...

さいきん いそがしくて 9時ころ おわります。

--> (會社から うちまで 大約(たいやく) 2時間かかります.)

會社から うちまで もどったら 11時,

インタ-ネットニュ-スを見たら12時,

會社の仕事を少し終ってたら、つぎの日の 1時、

じゃ, ねるじかんだ。ぎんようびを めざして, あしたも がんばって いきてるよ。

====================================================================

2008 5 19日 月曜日

====================================================================

(おさな)いころにはできだったが、今はできない事(こと)

 

それは、蛹(さなぎ)が蝶(ちょう)に成長(せいちょう)して、

 

のたくるのができませんが、高い空(そら)を飛()ぶのができるようなものだ。

 

(ぼく)は子()どもの頃(ころ)に望(のぞ)むことをすることができだった。しかし、今はできなくなった。

 

お金(かね)、時間(じかん)、社的環境等(しゃかいてきかんきょうなど)なものが問題(もんだい)になる。

 

幼いころには、したいことをして、眠(みん)が思(おも)えば()て、本(ほんと)に 良()かったのに..

 

あの時が(なつ)かしいよね。

 

====================================================================

知らない 單語

====================================================================

 

(おさな) : 어리다, 미숙하다, 유치하다

(さなぎ) : (곤충) 뻔데기

(ちょう) : 나비

成長(せいちょう) : 자라다, 성장하다

のたくる : (가느다란 것이) 꿈틀꿈틀 기어가다

(のぞ) : 바라다. 원하다

(しゃかいてき) : 사회적

環境(かんきょう) : 환경

(など) : 따위,

(さまざま) : 가지가지. 여러 가지. 가지각색

(ほんと) : 정말

(なつ)かしい : 그립다.

사용자 삽입 이미지








e.eventPhase == EventPhase.AT_TARGET 를 통하여 구분 처리 해준다.
그러면 _titleBar._btn1을 클릭하였을 경우 btnClick만 호출된다.

만약 위 구문을 빼고 코딩을 하였을 경우에는
_titleBar._btn1 을 클릭하였을 경우 titleDown -> titleUp - > btnClick 순서대로 함수가 호출된다.

_titleBar.addEventListener(MouseEvent.MOUSE_UP, titleUp);
function titleUp(e:Event):void{
    if (e.eventPhase == EventPhase.AT_TARGET) {
        // event came from object
        // addEventListener was used with and
        // is not result of propagation
        trace("titleUp");
    }
   
}
_titleBar.addEventListener(MouseEvent.MOUSE_DOWN, titleDown);
function titleDown(e:Event):void{
    if (e.eventPhase == EventPhase.AT_TARGET) {
        // event came from object
        // addEventListener was used with and
        // is not result of propagation
        trace("titleDown");
    }
   
}

_titleBar._btn1.addEventListener(MouseEvent.CLICK, btnClick);
function btnClick(e:Event):void{
    if (e.eventPhase == EventPhase.AT_TARGET) {
        // event came from object
        // addEventListener was used with and
        // is not result of propagation
        trace("btnClick");
    }       
}

참조 : http://www.senocular.com/flash/tutorials/as3withflashcs3/?page=3

'etc > old' 카테고리의 다른 글

私(わたし)の 日常(にちじょう)  (0) 2008.05.21
2008年 5月 19日 月曜日  (0) 2008.05.20
두수 사이에서 랜덤수 만들어내기  (0) 2008.05.16
2008年 5月 16日 金曜日  (0) 2008.05.16
2008-05-15 火曜日  (0) 2008.05.15

+ Recent posts