블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
05-10 04:13
 

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
 

최근에 올라온 글

최근에 달린 댓글


Description
 문서 중의 필드 리스트를 구한다.


Prototype
 BSTR GetFieldList([HwpFieldNumber number], [HwpFieldOption option])

 number
문서 중에서 동일한 이름의 필드가 여러 개 존재할 때 이를 구별하기 위한 식별 방법을 지정한다.
생략하면 hwpFieldPlain이 지정된다.
ID 설명
hwpFieldPlain 0 아무 기호 없이 순서대로 필드 이름이 나열된다.
hwpFieldNumber 1 필드 이름 뒤에 일련번호가 {{#}}와 같은 형식으로 붙는다.
hwpFieldCount 2 필드 이름뒤에 그 이름의 필드가 몇 개 있는지 {{#}}와 같은 형식으로 붙는다.

 option 
다음과 같은 옵션을 조합할 수 있다. 0을 지정하면 모두 off이다.
생략하면 0이 지정된다. 
ID 설명
hwpFieldCell 1 셀에 부여된 필드 리스트만을 구한다. hwpFieldClickHere와는 함께 지정할 수 없다.
hwpFieldClickHere 2 누름틀에 부여된 필드 리스트만을 구한다. hwpFieldCell과는 함께 지정할 수 없다.
hwpFieldSelection 4 셀렉션 내에 존재하는 필드 리스트를 구한다.


Return Values
 각 필드 사이를 문자코드 0x02로 구분하여 다음과 같은 형식으로 리턴 한다. (가장 마지막 필드에는 0x02가 붙지 않는다.)
 "필드이름#1\x2필드이름#2\x2...필드이름#n"


ㅁ 활용 예
   var fieldList = HwpCtrl.GetFieldList();
   var fields = fieldList.split(String.fromCharCode(2));


0x02 로 구분되어 있기 때문에 String.fromCharCode() 함수를 통하여 구분합니다.
위에서 fields 는 배열로 활 용할 수 있습니다.




Posted by 자수씨
, |

1. 웹서비스 프로젝트의 App_Code에 DataSet을 추가합니다.

App_Code를 우클릭하여 새 항목을 추가합니다.


템플릿에서 데이터 집합을 선택하고 이름은 적당하게(디폴트로 해도 무관) 정한 후 추가를 누릅니다.




2. TableAdapter를 정의합니다.

위의 DataSet을 만들면 자동으로 생성되는 TableAdapter의 구성 마법사가 뜨게 됩니다.
구성하지 않으시려면 취소를...



연결 문자열은 그냥 디폴트로~~~



SQL 문 사용으로 선택을 한 후 다음 버튼을~



SQL문을 입력하는 창이 뜨게됩니다.
SQL문을 그냥 입력해도 되지만 쿼리 작성기를 이용하여 쉽게 작성을 합니다.



쿼리 작성기를 선택하면 자동으로 테이블 추가 다이얼로그가 뜨게됩니다.
테스트 용으로 Dept와 Student 테이블을 선택합니다.



FK를 맺지 않아도 자동으로 열이름이 같은 DeptID로 조인을 하게됩니다.



확인을 누르면 자동으로 생성된 SQL을 볼 수 있습니다.



DataTable 반환만 체크한 후 다음을 클릭 (여기서 마침을 클릭해도 됩니다.)



마법사 결과를 보면 끝 입니다.



DataSet1.xsd에 GetData 라는 쿼리가 추가된 것을 확인할 수 있습니다.



TableAdapter 이름을 Student2 정도로 수정을 합니다. (나중에 보기 좋은 용도로)



3. 새로운 쿼리를 추가합니다.

아래와 같이 Query 추가를 누릅니다.



앞의 옵션들은 위에서 한 것과 같이 설정을 합니다.
쿼리 작성기에서 PK인 StudentID의 필터에 =@StudentID 를 설정합니다.
변수 앞에 골뱅이(@)를 붙여주면 변수로 처리를 하는 것 같습니다. (자바 개발자라 자세한건 ...)



아래와 같이 SQL이 만들어진 것을 확인할 수 있습니다.



DataTable 반환의 메소드 이름은 알아서 정해집니다.



추가된 것을 확인할 수 있습니다.



4. 기존 테이블의 테이블 아답터 추가하기

서버 탐색기에서 추가할 테이블을 선택하고 DataSet에 추가(Drag & Drop)를 합니다.



아래와 같이 추가된 것을 확인할 수 있습니다.



Part. 2 에서는 만들어진 TableAdapter의 활용법에 대해서 설명하겠습니다.




Posted by 자수씨
, |

인공지능 시간에 Fuzzy 라이브러리를 내려 받아서 직접 만든 프로젝트에 넣었더니 다음과 같은 오류를 뿜어냅니다.
fatal error C1010: unexpected end of file while looking for precompiled header directive


구글 검색!! 검색!!

해결책은 다음과 같습니다.

Project 메뉴에서 Settings 를 선택합니다. (그냥 Alt+F7 도 되는군요~)


C/C++ 탭에서 CategoryPrecompiled Headers를 선택하고 Automatic use of precompiled headers 체크하고 확인



다시 컴파일하면 오류가 사라집니다~

이유는?? 전공이 아니여서 되는걸로 만족합니다. ㅋㅋㅋ




Posted by 자수씨
, |

수업시간에 진법 변환하는 숙제를 하사 받았습니다.

미리미리 살짝쿵 정리를 해 놓으면 편할 것 같아 정리들어 갑니다.

Decimal → Hexadecimal
string dec = ...;
string hex = Convert.ToString(int.Parse(dec, 16).ToUpper();

Hexadecimal → Decimal
string hex = ...;
string dec = Convert.ToInt32(hex, 16).ToString();

빨간 숫자만 고치면 다른 진법으로 변환이 가능한 것처럼 보이네요 ㅋㅋㅋ


Posted by 자수씨
, |

이제 실행해볼 환경도 마련했으니 간단하게 프로그램을 작성해 보겠습니다.

1:  father(paul, tom).   father(alex, tom).
2:  mother(paul, alice). mother(alex, alice).
3:
4:  parent(Person, Parent) :-
5:    father(Person, Parent);
6:    mother(Person, Parent).
7:  
8:  sibling(Person, Sibling) :-
9:    Person \== Sibling,
10:   father(Person, Father), father(Sibling, Father),
11:   mother(Person, Mother), mother(Sibling, Mother).


1~2 라인에서는 facts 를 정의하였습니다.
1:  father(paul, tom).   father(alex, tom).   % paul 의 아버지는 tom, alex 의 아버지는 tom.
2:  mother(paul, alice). mother(alex, alice). % paul 의 어머니는 alice, alex 의 어머니는 alice.

4~6 라인에서는 부모 - parent/2 라는 룰을 정의하였습니다.
('/' 뒤에 숫자는 인자의 개수를 말합니다. 여기서는 parent 의 rule 의 인자는 2개라는 뜻)
4:  parent(Person, Parent) :-
5:    father(Person, Parent);
6:    mother(Person, Parent).
':-' 라는 연산자는 rule 을 정의할 때 사용하며 세미콜론(;) 은 or 연산을 의미합니다.
위의 내용은 parent/2 라는 룰은 father/2 나 mother/2 의 facts 를 확인한다는 뜻 입니다.

8 ~ 11 라인은 형제 - sibling/2 라는 룰을 정의하였습니다.
8:  sibling(Person, Sibling) :-
9:    Person \== Sibling,
10:   father(Person, Father), father(Sibling, Father),
11:   mother(Person, Mother), mother(Sibling, Mother).
형제를 확인할 경우 본인이 아닌 것을 확인해야 하므로 9 라인의 '\==' 연산자를 통하여 같지 않음을 확인합니다.
콤마(,)의 경우에는 and 연산을 의미합니다.
위의 내용은 인자들이 서로 같지 않고 아버지와 어머니가 같은 경우의 Person 과 Sibling 을 확인할 수 있는 rule 입니다.



이제 맞게 프로그래밍이 되었는지 질의를 해보겠습니다.
?- parent(paul, WHO).
WHO = tom ;
WHO = alice.
paul 의 parent 를 확인하는 질의입니다. 명령을 실행하면 WHO = tom 이라는 결과가 나오는데 Enter 를 치게 되면
다음 대상에 대한 출력을 하게됩니다.

sibling(paul, alex). sibling(paul, paul). 과 같은 질의를 해보면 올바르게(?) 프로그래밍이 된 것을 확인할 수 있을 것입니다.


Prolog 작성시 주의사항
facts
작성시 인자의 첫 글자는 소문자로 작성을 합니다. 첫 글자가 대문자일 경우 Singleton variable 로 인식을 하게됩니다.
rules 작성시에 rules 의 이름의 첫글자는 소문자로 작성하며, 인자의 첫글자는 대문자로 작성합니다.
(해보시면 알겠지만 이름의 첫글자를 대문자로 하게되면 컴파일 오류가 나며, 인자를 소문자로 할 경우 올바른 결과를 확인할 수 없습니다.)




이정도만 알면 간단한 Prolog 프로그래밍을 할 수 있겠죠???



Posted by 자수씨
, |

인공지능 수업시간에 Prolog 라는 언어를 배웠습니다.

대충 어떤 식으로 돌아가는 것에 대해서는 알겠지만 처음 다뤄보는 언어라서 버벅거리다가 이제야 이해를 하고 정리 들어갑니다.


위키피디아에서는 Prolog 를 다음과 같이 설명합니다.
Prolog is a logic programming language. It is a general purpose language often associated with artificial intelligence and computational linguistics. It has a purely logical subset, called "pure Prolog", as well as a number of extralogical features.
[출처] 위키피디아 - Prolog  http://en.wikipedia.org/wiki/Prolog

논리 프로그래밍 언어로 인공지능과 컴퓨터언어학과 연관이 있다고 하네요... (험험... 짧은 영어 실력이...)



실제로 Prolog 로 프로그래밍을 할 수 있도록 개발 툴을 다운로드 받습니다.
SWI-Prolog's home : http://www.swi-prolog.org/

좌측에 있는 Download 메뉴를 클릭합니다.



Stable release 를 선택합니다. (안정적으로 릴리즈 된 것을 사용해야겠죠~)



저는 Window XP 를 쓰기 때문에 아래의 링크로 설치파일을 받았습니다.



설치하는데에는 무리가 없을 것 같으므로 스킵하고 설치된 SWI-Prolog 를 실행하면 아래와 같은 화면이 나오게 됩니다.



그냥 SWI-Prolog 만 써도 프로그래밍은 가능하지만 조금 불편한 점이 많습니다.
그래서 Prolog 관련 IDE 를 다운로드 받습니다.
SWI-Prolog-Editor Download Page : http://lernen.bildung.hessen.de/informatik/swiprolog/indexe.htm

다운로드 페이지로 이동하여 아래의 링크를 클릭합니다. setup.zip 의 압축을 풀어서 설치를 합니다.



설치를 완료하면 아래와 같은 바로가기가 생기게 됩니다. 실행을 해봐야겠죠?



pl 파일이 위쪽에 있고 아래쪽에는 실행을 시켜볼 수 있는 인터프리터(?) 가  아래쪽에 있습니다.



간단하게 Prolog 프로그래밍을 작성하고 F9 를 누르면 (처음 누르게 되면 파일 저장경로를 묻습니다.)
컴파일이 되고 아래쪽에서 명령을 실행하여 확인을 해볼 수 있습니다.



역시 IDE 가 있으니 좀 할만하네요~ ㅋㅋㅋ



Posted by 자수씨
, |

초고속정보통신망 수업시간에 AMAN2002 를 이용하여 네트워크 레이어의 헤더들을 분석하는 프로그램을 만들고 있습니다.
하지만 책에 나온대로 하게되면 오류 투성이...

5장 IPViewer 에서 책에 나오지 않는 부분을 정리하였습니다.






Posted by 자수씨
, |

인공지능 시간에 팀 과제 였던 A* 알고리즘...

priority queue 의 비중이 크기에 c 와 MFC 로 개발하였을 때 Java 대한 그리움을 떨치지 못하고

자바로 다시 짰습니다.

아... 이제 저는 너무나도 자바에 익숙해져 버렸나 봅니다;;; 웁쯔;;;

5년전에는 MFC 신동이였는데 크흑...





Posted by 자수씨
, |

평가판을 설치하고 재도전을 해보았습니다.




-ㅁ-;;;; 이런 ㅋㅋㅋ


Posted by 자수씨
, |

이번학기에서 가장 고생할 것 같은 인공지능 시간에 첫번째 레포트가 나왔습니다.

8-puzzle 구현하기 입니다. 휴리스틱으로 구현을...

A* 알고리즘과 BFS, priority queue 와 를 이용한다면 결과물을 뽑을 수 있을 듯 합니다.

일단 다음 시간까지는 제안서를 제출해야 한다는...

내일 한번 풀어봐야지 ㅋㄷ...



Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백