검색결과 리스트
Programming에 해당되는 글 22건
- 2013.04.26 open api 관련
- 2012.10.05 python으로 아웃룩 메일 읽기
- 2012.05.12 아이폰 시뮬레이터(simulator)가 파일을 쓰는 위치
- 2012.01.04 Textmate의 강력함을 찾아서.. (2)
- 2012.01.02 Textmate의 강력함을 찾아서..
- 2011.12.30 rails에서 gem 설치된 정보를 바꾸면 서버를 다시 시작해야 하구나 ㅠ.ㅠ
- 2011.12.28 Unicode 와 mac 그리고 루비
- 2011.12.25 ruby
- 2011.12.23 현재까지 루비 사용 소감
- 2011.11.24 URL FORMAT
글
Programming 2013. 4. 26. 23:48open api 관련
[-] Open API 관련 개발
Open API, XML-RPC 작업에 관심이 있다면, 다음의 링크를 참고하십시오.
xmlrpc & xml :
http://trio.co.kr/webrefer/xml/xml10.html
http://blog.naver.com/1234anwj?Redirect=Log&logNo=29772298
xmlrpc & RSS 2.0 :
http://kin.naver.com/knowhow/entry.php?d1id=8&dir_id=8&eid=9xPAUaXu6DWZw1UzR30Nu8IdmgsDgGgi
http://cafe.naver.com/bindung.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=117
http://blogs.law.harvard.edu/tech/rss
xmlrpc & Blogger API 프로토콜 :
http://www.blogger.com/developers/api/1_docs/
http://xmlrpc.free-conversant.com/docs/bloggerAPI
xmlrpc & metaWeblog API 프로토콜 :
http://www.xmlrpc.com/metaWeblogApi
http://www.xmlrpc.com/spec
http://blogs.labo-dotnet.com/vlad/services/metablogapi.aspx
http://www.sixapart.com/developers/xmlrpc/metaweblog_api/metaweblognewpost.html
http://txp.kusor.com/rpc-api/metaweblog-xml-rpc-api
기타 참고
http://en.wikipedia.org/wiki/MetaWeblog
'Programming' 카테고리의 다른 글
python으로 아웃룩 메일 읽기 (0) | 2012.10.05 |
---|---|
아이폰 시뮬레이터(simulator)가 파일을 쓰는 위치 (0) | 2012.05.12 |
Textmate의 강력함을 찾아서.. (2) (0) | 2012.01.04 |
Textmate의 강력함을 찾아서.. (0) | 2012.01.02 |
rails에서 gem 설치된 정보를 바꾸면 서버를 다시 시작해야 하구나 ㅠ.ㅠ (0) | 2011.12.30 |
트랙백
댓글
글
Programming 2012. 10. 5. 15:35python으로 아웃룩 메일 읽기
몇가지 예제 코드
#!/usr/bin/env python olFolderInbox = 6 from win32com.client import Dispatch outlook = Dispatch('outlook.application') ns = outlook.GetNameSpace("MAPI") inbox = ns.GetDefaultFolder(olFolderInbox) count = 0 for i in inbox.items: print (i.subject) count = count + 1 if count > 30: break; #print (i.body)
from win32com.client import * app = Dispatch("Outlook.Application") ns = app.GetNamespace("MAPI") PersonalFolder = ns.Folders.Item(u'MailboxName) Inbox = PersonalFolder.Folders.Item("Inbox") for i in range(1, 11): msg = Inbox.Items.Item(i) print msg.Subject print msg.Body
#!/usr/bin/env python from win32com.client import Dispatch session = Dispatch("MAPI.session") session.Logon('OUTLOOK') # MAPI profile name inbox = session.Inbox print "Inbox name is:", inbox.Name print "Number of messages:", inbox.Messages.Count for i in range(inbox.Messages.Count): message = inbox.Messages.Item(i + 1) print message.Subject
#!/usr/bin/env python # Read the last email in an Outlook mailbox and save the attachments. from win32com.client import Dispatch def main(): session = Dispatch('MAPI.session') #session.Logon('Outlook') # for local mailbox session.Logon('','',0,1,0,0,'exchange.foo.com\nusername'); inbox = session.Inbox message = inbox.Messages.GetLast() attachments = message.Attachments for i in range(attachments.Count): attachment = attachments.Item(i + 1) # indexes are 1 based filename = 'c:\\tempfile_%i' % i attachment.WriteToFile(filename) session.Logoff() if __name__ == '__main__': main()
'Programming' 카테고리의 다른 글
open api 관련 (0) | 2013.04.26 |
---|---|
아이폰 시뮬레이터(simulator)가 파일을 쓰는 위치 (0) | 2012.05.12 |
Textmate의 강력함을 찾아서.. (2) (0) | 2012.01.04 |
Textmate의 강력함을 찾아서.. (0) | 2012.01.02 |
rails에서 gem 설치된 정보를 바꾸면 서버를 다시 시작해야 하구나 ㅠ.ㅠ (0) | 2011.12.30 |
트랙백
댓글
글
Programming 2012. 5. 12. 17:07아이폰 시뮬레이터(simulator)가 파일을 쓰는 위치
아이폰 시뮬레이터에서 파일을 쓰는 위치입니다.
파일 처리나 디버깅을 할 때 유용 할 것 같아서 남깁니다.
USER_NAME는 사용자 계정입니다. {버전}은 ios 버전입니다.
'Programming' 카테고리의 다른 글
open api 관련 (0) | 2013.04.26 |
---|---|
python으로 아웃룩 메일 읽기 (0) | 2012.10.05 |
Textmate의 강력함을 찾아서.. (2) (0) | 2012.01.04 |
Textmate의 강력함을 찾아서.. (0) | 2012.01.02 |
rails에서 gem 설치된 정보를 바꾸면 서버를 다시 시작해야 하구나 ㅠ.ㅠ (0) | 2011.12.30 |
트랙백
댓글
글
Programming 2012. 1. 4. 03:07Textmate의 강력함을 찾아서.. (2)
option + shift + 마우스로 특정 행까지 선택
option + cmd + 마우스로 특정 행 선택
=> 선택된 행들에 대해 타이핑시 같은 문자 입력
cmd + l : line 이동
option+ctrl+cmd+v : 붙여넣기 목록 선택
opt+shift+cmd+ 아래화살: 레일스에서 모델등으로 이동
'Programming' 카테고리의 다른 글
python으로 아웃룩 메일 읽기 (0) | 2012.10.05 |
---|---|
아이폰 시뮬레이터(simulator)가 파일을 쓰는 위치 (0) | 2012.05.12 |
Textmate의 강력함을 찾아서.. (0) | 2012.01.02 |
rails에서 gem 설치된 정보를 바꾸면 서버를 다시 시작해야 하구나 ㅠ.ㅠ (0) | 2011.12.30 |
Unicode 와 mac 그리고 루비 (0) | 2011.12.28 |
트랙백
댓글
글
Programming 2012. 1. 2. 21:53Textmate의 강력함을 찾아서..
아직도 맥에 적응을 못해서 죽겠네요. ㅠ.ㅠ
그냥 일반적인 기능은 사용하는데 크게 문제가 없는데 에디터 같은 것들은 단축키도 다르고 해서 기본적인 이동과 편집이 너무 느리니 답답해 죽을 지경입니다.
우선 Textmate 부터 적응
1. 단축키
⌥⌘.(마침표): HTML 안닫힌 태그 있으면, 닫힌 태그 입력
⌃⇧,(쉼표): HTML 태그 생성
⌃⇧.(마침표): Language의 시작, 출력, 주석 등등 (Bundle에 따라 틀림)
⌘/: 주석 추가,제거
⌃W: 단어 선택
⌃⇧K: 줄 삭제
⌃⇧D: 줄 복사
⌃⌘↑↓: 줄 이동
⌘F: 검색
⌘G: 다음 검색
⇧⌘G: 이전 검색
⌃⌘F: 모두 변환
⌥⌘F: 변환하고 찾기
⌘1-9: 탭을 번호순으로 이동
⌥⌘ <- / ->: 탭 좌/우 이동
⇧⌘ {/} : 이전 탭/ 다음 탭 이동
command-T, command-shift-T, and command-control-T key combos
=> 파일이동, 심볼이동, 번들 사용
옵션+화살표: 단어단위 이동
cmd+enter: 새라인 생성
일차 단축키는 우선 요정도 !!
'Programming' 카테고리의 다른 글
아이폰 시뮬레이터(simulator)가 파일을 쓰는 위치 (0) | 2012.05.12 |
---|---|
Textmate의 강력함을 찾아서.. (2) (0) | 2012.01.04 |
rails에서 gem 설치된 정보를 바꾸면 서버를 다시 시작해야 하구나 ㅠ.ㅠ (0) | 2011.12.30 |
Unicode 와 mac 그리고 루비 (0) | 2011.12.28 |
ruby (0) | 2011.12.25 |
트랙백
댓글
글
Programming 2011. 12. 30. 00:19rails에서 gem 설치된 정보를 바꾸면 서버를 다시 시작해야 하구나 ㅠ.ㅠ
Gemfile에도 정보를 추가하고 bundle install 도 했는데 require에서 계속 can't load haricot 가 나와서 못찾고 있었는데
그냥 서버 재시작을 하니까 되네 ㅠ.ㅠ
'Programming' 카테고리의 다른 글
Textmate의 강력함을 찾아서.. (2) (0) | 2012.01.04 |
---|---|
Textmate의 강력함을 찾아서.. (0) | 2012.01.02 |
Unicode 와 mac 그리고 루비 (0) | 2011.12.28 |
ruby (0) | 2011.12.25 |
현재까지 루비 사용 소감 (0) | 2011.12.23 |
트랙백
댓글
글
Programming 2011. 12. 28. 03:45Unicode 와 mac 그리고 루비
루비로 맥에서 윈도우 공유폴더 파일을 웹에서 처리하는 것을 하다가 유니코드쪽때문에 엄청 고생했다. ㅠ.ㅠ
결과에 여러 인코딩이 섞여서 변환도 안되고 눈으로 보기에는 정상적인 한글로 보이고 ㅍ,ㅍ 헥사를 까보고 윈도우에서 열어보고 했더니 한글의 인코딩이 뒤죽박죽 ㅋ
우선 루비에서 인코딩 변경
보통 다른 프로그래밍에서도 많이 사용했던 iconv를 사용했다.
<사용법>
# module 선언
require 'iconv'...
# EUC-KR을 UTF-8로 변환하기 위한 선언
conv = Iconv.new('UTF-8', 'EUC-KR')#Convert 'document'
converted = conv.iconv(document)
여기까지는 일반적으로 많이 하는 방식이고 쉽다.
인코딩을 하다가 보면 한글에 확장완성형(?), 특이한 글자가 있으면 에러가 발생하고 멈춘다.
이 때 이 에러를 무시하고 값을 얻을려면 아래와 같이 //IGNORE 를 추가하면 된다.
conv = Iconv.new('UTF-8//IGNORE', 'EUC-KR')
루비에서 이런 형태로 언하는 인코딩간에 서로 변환을 한다.
* 참고로 루비에서는 유니코드 형태가 1.8x에서는 지원이 안되어서 그냥 byte단위 string을 가지고 있는 그냥 뭉텅이 메모리이다. 그래서 한글에 대해서는 스트링 연산자가 정상동작을 안한다.
여기까지 알면 보통 내가 사용하는 곳들의 인코딩 종류만 알면 그것에 맞추어 변경을 해서 통일만 시켜주면 왠만큼 문제가 없다. 보통 웹이랑 다른 곳에 utf8을 많이 사용하고 나도 이런저런곳에 많이 이용해서 utf8을 기본으로 맞추려고 했다.
윈도우: CP949 (or EUC-KR 등..)
Mac: UTF-8 (UTF-8-MAC)
윈도우에서 가져오는 것이니 그냥 CP949를 UTF-8 로 변환하면 될 줄 알았다.
그런데 변환을 하니 이상해서 윈도우에서 가져오는 부분의 한글 헥사를 까보면 UTF-8 과 전혀 다른 형태의 헥사값이 나오는 것이다.
E1 84 92 E1 ~ 이런 헥사들이 나열되는데 이 형태는 UTF-8-MAC 이다.
이 형태를 본적이 없고 갯수도 많아서 무슨 인코딩인지를 몰라 엄청 해멧다.
이 UTF-8-MAC 라는 놈이 어떤 놈인지 잘 모르는 것도 크게 기인을 하였다. 웹마다 설명이 조금씩 다르게 되어있고 용어도 달라서 검색도 잘 안되고 ㅠ.ㅠ
UTF-8-MAC은 기본 UTF-8에서 한글같은 것을 맥 파일시스템에 맞춰 자소 단위로 분해해서 처리하는 것이다.
UTF-8 값들을 보면 한글에서 '하' 같은 경우 '하' 도 있고 'ㅎ' 'ㅏ' 각각도 있다.
Mac에서는 파일쪽 처리에서 특히 파일시스템과 연관되어 '하' 같은 것을 'ㅎ' 'ㅏ' 형식으로 나누어서 저장되고 이 것을 UTF-8-MAC로 부른다. 그래서 헥사값을 보면 한글은 첫 헥사값이 E1 이 많다.
이 부분 때문에 맥과 윈도우간에 파일 이름을 변경하거나 하면 자소단위로 분해된 형태로 보이게 된다.
여기서 헥사값을 보는 부분에서도 많이 고생하게 되었는데 헥사값을 UTF-16형태로 보면 'ㅅ' 같은 경우 0x1109 가 된다.
근데 이걸 UTF-8 형식의 헥사로 보면 0xE18489 가 된다. (정확히는 3바이트와 4바이트 처리에서 오는 듯.)
보통 설명할 때 UTF-16 값으로 설명을 많이 하고 나같은 경우 VC에서 많이 보다 보니 UTF-16 헥사에 눈이 익어서 더 헷갈렸다.
맥은 UTF-8이므로 헥사의 자모를 찾을 때도 UTF-8의 자모를 찾아서 보면 된다.
UnicodeChecker 라는 툴을 웹들을 보다가 알게 되었는데 엄청 괜찮다. 애가 없었으면 얼마나 고생을 더 했을지 ㅠ.ㅠ
한글 글자를 치면 자기가 해당 hex값을 찾아주고 utf8, utf16등 몇가지 헥사값을 같이 보여준다.
자소분해되고 합쳐지는 부분을 사람들 마다 약간씩 다르게 부르는데 여기서 말한 것 처럼 자소분해라고 하기도 하고 NFD와 NFC로 표현하기도 하고 처가끝 형태라고도 하고 기타 등등 다양한 용어로 설명을 해주심.
기타 도움 된 설명들 인용
<출처: http://www.appleforum.com/application/6069-jterminal.html>
맥에서 파일 시스템은 UTF-8을 씁니다.
UTF-8이긴 한데, disjoint된 한글 셋인 U+1100 영역의
유니조합형을 쓰기때문에 웬만하면 그냥 해서는 잘 안보입니다.
제대로 보이게 하려면 파일 시스템에 접근할 때에만
U+AC00 영역으로 conjoin 해줘야하는데, 그게 한글음절
영역에만 적용되는 거라서.. 애플에서 왜 유독 파일시스템에만
U+1100을 쓰는지는 도저히 이해할 수 없습니다.
U+1100이 단점만 있는 건 아니지만, 다른 글자로 된
것은 POSIX레이어로 접근해도 아주 쉬운데 오직 한글만
특별처리를 해야하는게.....
한글패치 메일링리스트 (http://www.kr.freebsd.org/ml/archive...patch/2002/06/)
에서는 유니조합형을 위한 폰트를 만들려는 움직임도
약간 있었는데 어떻게 됐는지는 잘 모르겠네요..
여담으로, GTK2에서는 입력장치에서 U+1100을 쓰는 한글 입력기가
얼마전 등장했습니다.
참 그리고, U+1100뿐 아니라 U+AC00도 허용하기때문에 파일이름이
겉보기엔 같은게 사실 상 2개가 존재할 수 있습니다. -.-;;;
그게 사실은 UTF-8과 UTF-16은 그냥 그 인코딩으로 변환만 해주면
되는 거라 애플리케이션에서 쉽게 처리가 가능한데요. 가장 큰 문제는
한글을 다른데서는 다 U+AC00을 쓰면서 파일시스템에서만 U+1100을
쓴다는 문제입니다. (또는 Finder만 U+1100을 쓰는지도 모르겠습니다.)
U+1100영역은 한글 조합형이구요. 초성, 중성, 종성, 고어초성, 고어중성,
고어종성을 가지고 있습니다. 그리고, U+AC00은 한글 완성형이라서
초성 19벌, 중성 21벌, 종성 28벌(종성없는것 포함)을 조합한
19x21x28=11172글자를 순서대로 가지고 있는데, 조합형으로 하면
UTF-16이나 UCS2로 써도 한글 한 글자에 4~6바이트이고,
UTF-8로 쓰면 한글자에 9바이트씩 되어버려서
사실상 한글유니코드라고 하면 U+AC00을 다 쓰고 있습니다.
그런데, MacOS X에서 파일시스템에는 유독 U+1100으로 인코딩된
코드를 집어 넣는다는 것이 문제가 됩니다.
예.. UFS에서는 UTF-8을 쓰는 것 같은데, 속도가 워낙 느려서
못 쓰겠더군요 흐르르;;
음.. 이해를 돕기 위해서 한글이 저장되는 단계를 순서대로 해보면..
'한글' 이란 파일을 만들때
파일을 만들려고 타이핑을 한다:
unicode-aware한 API로 접근할때 // 0xd55c 0xae00 (UCS2)
BSD API를 사용할 때 // 0xed 0x95 0x9c 0xea 0xb8 0x80 (UTF-8)
BSD API-Mach또는 아쿠아-Mach 간의 인터페이스 상에서 파일관련 API로 전달하면서 변환:
0x1112 0x1161 0x11ab 0x1100 0x1173 0x11af (UCS2)
Mach에서 FS담당 서브시스템에 전달:
HFS+를 쓸 때 //
0x11 0x12 0x11 0x61 0x11 0xab 0x11 0x00 0x11 0x73 0x11 0xaf
(UTF-16)
UFS를 쓸 때 //
0xe1 0x84 0x92 0xe1 0x85 0xa1 0xe1 0x86 0xab 0xe1 0x84 0x80 0xe1 0x85 0xb3 0xe1 0x86 0xaf
(UTF-8)
다시 디렉토리 읽는 API가 호출됐을 때 전달:
BSD API인 경우:
0xe1 0x84 0x92 0xe1 0x85 0xa1 0xe1 0x86 0xab 0xe1 0x84 0x80 0xe1 0x85 0xb3 0xe1 0x86 0xaf
(UTF-8)
그 외의 경우:
0x1112 0x1161 0x11ab 0x1100 0x1173 0x11af (UCS2)
아시겠지만 그냥 참고로 0x1112는 초성 기역, 0x1161은 중성 아,
0x11ab는 종성 ㄴ 이구요.0xd55c는 완성형 '한'.. 이런 식입니다.
유니코드 0x1112를 UTF-16으로 쓰면 0x11 0x12가 되구요.
UTF-8로 쓰면 0xe1 0x84 0x92 세바이트로 늘어납니다.
흠 앞에 적은 내용이랑 거의 같은 말인데 중간에 추가 이해에 도움을 주신 부분들이 있어서 같이 인용합니다.
결과적으로 한 것은 iconv는 그냥 utf-8-mac => utf-8 로 변환해주면 끝이다.
utf8Encoder = Iconv.new('UTF-8//IGNORE','UTF-8-MAC')
눈에 보이는게 문제다. ㅠ.ㅠ 에디터에서 한글을 잘보여주니 인코딩이 서로 막 섞여 개판인 것도 같은 한글로 보여주어서 문슨 인코딩 상태인지를 몰라 더 고생했네.
예전에 리눅스랑 친하게 지낼일이 생겨 심하게 고생하고는 인코딩으로 한동안 크게 고생은 안했는데 맥에 와서 또 한번 심하게 당하네 ㅠ.ㅠ
* 이게 입력이나 에디터 같은 곳은 UTF-8 처리를 하는 곳이 있고 파일 관련 검색이나 파일시스템 관련된 쪽은 UTF-8-MAC으로 처리되어 꼬일때도 좀 있다.
아래는 터미널 예제 (출처: http://mcchae.egloos.com/10686522)
터미널에서$ find . | grep 시크릿이렇게 주었을 때, find . 의 결과는 UTF-8-MAC 인코딩 결과로 나오지만,터미널의 "시크릿"은 UTF-8 인코딩 입니다.고로,OSX에서는$ find . | iconv -c -f UTF-8-MAC -t UTF-8 | grep 시크릿이런 식으로 검색하면 한글 검색이 잘 됩니다.~/.profile 등에alias hgrep='iconv -c -f UTF-8-MAC -t UTF-8 | grep '와 같이 alias 를 추가하시면,$ find . | hgrep 시크릿와 같은 식으로 검색 가능합니다. ^^
참고자료
http://sirius2k.springnote.com/pages/135738
http://namoda.springnote.com/pages/4922363
http://aero2blog.blogspot.com/2011/07/macos-x.html
[Unicode_1.0.pdf]: http://jamestic.egloos.com/2634510
http://parkpd.egloos.com/3367783
http://b.mytears.org/2005/01/101
<Util> UnicodeChecker (http://earthlingsoft.net/UnicodeChecker/)
기타 응용에 도움을 줌
http://www.cogno.org/2011/01/blog-post_6147.html
'Programming' 카테고리의 다른 글
Textmate의 강력함을 찾아서.. (0) | 2012.01.02 |
---|---|
rails에서 gem 설치된 정보를 바꾸면 서버를 다시 시작해야 하구나 ㅠ.ㅠ (0) | 2011.12.30 |
ruby (0) | 2011.12.25 |
현재까지 루비 사용 소감 (0) | 2011.12.23 |
URL FORMAT (0) | 2011.11.24 |
트랙백
댓글
글
Programming 2011. 12. 25. 17:04ruby
주요 참조 사이트
http://rubydoc.info/stdlib/core/1.8.7/frames
http://rubydoc.info/github/hpricot
http://errtheblog.com/posts/6-parse-xml-with-hpricot
http://www.techotopia.com/index.php/Ruby_String_Replacement,_Substitution_and_Insertion
http://sqlite-ruby.rubyforge.org/sqlite3/faq.html
http://sqlite-ruby.rubyforge.org/
rails
console에서 rails 프로젝트 만듬
만든 폴더로 이동하여
mate .
<rails 3.0 주요변경 사항>
rails [프로젝트명] => rails new [프로젝트명] 으로 변경
ruby script/generate => rails generate 형태로 변경
: ./script/[명령어] 계열이 rails [명령어 형태로 변경됨
'Programming' 카테고리의 다른 글
rails에서 gem 설치된 정보를 바꾸면 서버를 다시 시작해야 하구나 ㅠ.ㅠ (0) | 2011.12.30 |
---|---|
Unicode 와 mac 그리고 루비 (0) | 2011.12.28 |
현재까지 루비 사용 소감 (0) | 2011.12.23 |
URL FORMAT (0) | 2011.11.24 |
유니코드에 대비한 프로그램을 작성하는 여섯가지 원칙 (0) | 2011.11.20 |
트랙백
댓글
글
Programming 2011. 12. 23. 13:48현재까지 루비 사용 소감
간단한것 만들기에 편하기는 하다.
근데 한글처리쪽이 아직은 좋지 못해서 이래저래 내가 주로 사용하는 용도에는 많이 불편하네...
필요한 것 gem에서 구하는 거랑 메뉴얼도 약간은 불편한 것 같다.
메뉴얼은 알게되면 쉽게 볼것 같은데 첨에는 그 형식을 잘 모르는 상태라 영 해독이 힘들다 ㅠ.ㅠ
'Programming' 카테고리의 다른 글
Unicode 와 mac 그리고 루비 (0) | 2011.12.28 |
---|---|
ruby (0) | 2011.12.25 |
URL FORMAT (0) | 2011.11.24 |
유니코드에 대비한 프로그램을 작성하는 여섯가지 원칙 (0) | 2011.11.20 |
google-breakpad (0) | 2011.11.15 |
트랙백
댓글
글
Programming 2011. 11. 24. 19:19URL FORMAT
그냥 간단히
[InternetShortcut]
URL=http://www.someaddress.com/
만 ansi로 저장하면 기본적으로 브라우저 여는것은 된다.
근데 확장자를 소문자로 하면 실행시킬때 에러나는 경우도 있다. ㅠ.ㅠ
(URL 사용, url 로 만드니까 더블클릭 실행시 에러나기도 함)
아래 세부 내용
THE URL FORMAT
The classic URL file format is pretty simple; it has a format similar to an INI file:
Sample URL File:
______________________________________________________
[InternetShortcut]
URL=http://www.someaddress.com/
WorkingDirectory=C:\WINDOWS\
ShowCommand=7
IconIndex=1
IconFile=C:\WINDOWS\SYSTEM\url.dll
Modified=20F06BA06D07BD014D
HotKey=1601
______________________________________________________
The syntax of the file format is like the following:
[Group\Section]
Field=Value
Field=Value
.
.
Each line terminates with CR and LF characters, and uses ANSI as it’s character set. The files can be manipulated using basic file I\O or the GetPrivateProfileString, GetPrivateProfileSection, WritePrivateProfileSection, WritePrivateProfileSring API functions provided by Windows.
URL
The URL field is self-explanatory. It’s the address location of the page to load. It should be a fully qualifying URL with the format protocol://server/page. A URL file is not restricted to the HTTP protocol. In general, at least, whatever that can be saved as a favorite is a valid URL.
WorkingDirectory
It’s the “working folder” that your URL file uses. The working folder is possibly the folder to be set as the current folder for the application that would open the file. However Internet Explorer does not seem to be affected by this field.
Note: this setting does not seem to appear in some versions of Internet Explorer/Windows.
IconIndex
The Icon Index within the icon library specified by IconFile. In an icon library, which can be generally be either a ICO, DLL or EXE file, the icons are indexed with numbers. The first icon index starts at 0.
IconFile
Specifies the path of the icon library file. Generally the icon library can be an ICO, DLL or EXE file. The default icon library used tends to be the URL.DLL library on the system’s Windows\System directory
Modified
This field is generally the most cryptic of all the fields.
Example: Modified=20F06BA06D07BD014D
For a while some vague calculations were given on this page for calculating the date and time of the modified field, but since the first posting of this article I’ve received a lot of input from other people that have experimented with this field:
Changes at a fast pace
Changes slowly
C
C0
34
90
B3
07
DC
C3
01
DE
Thanks goes to Shawn K. Hall, Jeff Dickey, Ken Schenke, Vivian De Smedt, David Jones, Frank Stocker, and possibly others (I’ve lost some mail since a few years ago) for pointing out this is a FILETIME structure (this article has last been updated in late 2000, basically 3-4 years, so I’ve been late to rewrite this section), The first 8 hex bytes are the FILETIME structure, the last hex byte is found to be a checksum and is unimportant. Since this is a FILETIME structure, you can pass it to the FileTimeToSystemTime API call to get all the discrete date and time elements. However the first 8 hex bytes need to be inverted before passing in to FileTimeToSystemTime. Therefore:
C0
34
90
B3
07
DC
C3
01
DE
Invert
Rem.
01
C3
DC
07
B3
90
34
C0
High DW = 01 C3 DC 07
Low DW = B3 90 34 C30
FileTimeToSystemTime
16/1/2004 08:06:53
I’ve wrote a small VB6 demonstration that does this task.
ShowCommand
(Nothing) - Normal
7 - Minimized
3 - Maximized
Note: this setting does not seem to appear in some versions of Internet Explorer/Windows.
HotKey
The HotKey field specifies what is the shortcut key used to automatically launch the Internet shortcut. The field uses a number to specify what hotkey is used.
833 – Ctrl + Shift + A
834 – Ctrl + Shift + B
835 – Ctrl + Shift + C
.
.
1345 – Shift + Alt + A
1346 – Shift + Alt + B
1347 – Shift + Alt + C
.
.
1601 – Ctrl + Alt + A
1602 – Ctrl + Alt + B
1603 – Ctrl + Alt + C
.
Refer to Appendix A for a more complete table of hotkeys.
EXTENDED URL FORMAT
Sometimes the URL file will provide more information when it is saved as a Favorite with the following format:
[DEFAULT]
BASEURL=url
[DOC#n(#n#n#n…)]
BASEURL=url
ORIGURL=url
Sample URL File with extended URL fields:
_______________________________________________________
[DEFAULT]
BASEURL=http://www.someaddress.com
[DOC#4#5]
BASEURL=http://www.someaddress.com/frame1.html
ORIGURL=frame1.html
[DOC#4#6]
BASEURL=http://www.someaddress.com/frame2.html
ORIGURL=frame2.html
[InternetShortcut]
URL=http://www.someaddress.com/
_______________________________________________________
The purpose of these extra fields is probably for the browser to figure out what HTML documents were loaded in each frame, since the main URL tends to not record the state of its framesets. If you navigate to a framed site, click on a frame link (which changes one of the frames), and add the page to your favorites, the state of the framesets is preserved. When a frame is nested inside another frame, the frame’s section name has the same first numbers, and another few numbers appended, like the following:
Sample URL File with extended URL fields and nested frames:
_______________________________________________________
[DEFAULT]
BASEURL=http://www.someaddress.com
[DOC#4#5]
BASEURL=http://www.someaddress.com/frame1.html
ORIGURL=frame1.html
[DOC#4#5#4#6]
BASEURL=http://www.someaddress.com/frame1a.html
ORIGURL=frame1a.html
[DOC#4#5#4#7]
BASEURL=http://www.someaddress.com/frame1b.html
ORIGURL=frame1b.html
[DOC#4#6]
BASEURL=http://www.someaddress.com/frame2.html
ORIGURL=frame2.html
[InternetShortcut]
URL=http://www.someaddress.com/
_______________________________________________________
'Programming' 카테고리의 다른 글
ruby (0) | 2011.12.25 |
---|---|
현재까지 루비 사용 소감 (0) | 2011.12.23 |
유니코드에 대비한 프로그램을 작성하는 여섯가지 원칙 (0) | 2011.11.20 |
google-breakpad (0) | 2011.11.15 |
닷넷에서 xml 처리 (0) | 2011.11.14 |
RECENT COMMENT