[완료] 한글 문제 + 프로그래밍...

hoonjang의 이미지

먼저.. 답을 주신 많은 분들께 감사 말씀을 드립니다.
이렇게 까지.. 빠르고 정확하게 답을 구할 거라고 예상을 못했었습니다.

덕분에 상당부분 이해가 가게 되었습니다.
다만, 제 프로그래밍 소양이 미천해서.. 해결하지 못하는 부분을 여쭙고자 합니다.

저는 omr 리더기로 "한" 이란 글자를 입력 받으려고 합니다.
아래 질문을 통해 알게 된 것처럼

초성: ㅎ - 18 엑셀: A1 에 저장
중성: ㅏ - 0 엑셀: B1 에 저장
종성: ㄴ - 4 엑셀: C1 에 저장

((A1*588)+(B1*28)+C1)+44032
로 계산한 코드값 54620 입니다.

코드값 까지는 성공했는데..
엑셀 상에서 "한"이라는 글자로 변환하고자 합니다.

이때 필요한 라이브러리나.. 함수를 알고 싶습니다.

지금까지 찾아서 읽어본 것은 자바스크립트와 웹페이지 상에서 코드변환이었습니다만..
실력이 모자라.. 응용이 안되는 군요.

도움을 부탁드립니다.

감사합니다.

dwfree74의 이미지

엑셀에는 =code("한") 이렇게 하면 51153 이 나오고
=char(51153) 이렇게 하면 한 이 표시되는데
위의 계산방식과 엑셀 함수에서 사용되는 숫자 사이의

계산식만 알아내면 해결 될 거 같습니다만...

kldp.net 에 많은 프로그래머들이 동참하기를 바라며...^^

hoonjang의 이미지

엑셀 함수는 ansi를 사용하는 것 같습니다.

근데.. 안시는 아스키 코드를 대표하는 듯하네요.
그러면.. 한글문제에는 별 해결책이 아닌 것 같습니다.

하여간.. 도움 주신 말씀도 참고해서 답을 찾아 보겠습니다.

감사합니다.^^

thames의 이미지

엑셀에서 =char(51153) 으로 값이 얻어 지나요?
char에서는 ANSI 값으로 하는거 같은데, 음 -3-)


──────────────────────────────────

hoonjang의 이미지

CODE 역시 안시를 사용하는데..
한, 학, 각기 다른 코드를 내보여주네요.

에고.. 재미있긴 한데.. 시간이 급하네요.. ㅎㅎ

thames의 이미지

한글 아스키코드 값을 찾아보시면...

0xC780 - 0xC7FF:
?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ? 
?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ? 
?  퐈 퐝 푀 푄 표 푠 푤 푭 푯 푸 푹 푼 푿 풀 풂 
품 풉 풋 풍 풔 풩 퓌 퓐 퓔 퓜 퓟 퓨 퓬 퓰 퓸 퓻 
퓽 프 픈 플 픔 픕 픗 피 픽 핀 필 핌 핍 핏 핑 하 
학 <span>한</span> 할 핥 함 합 핫 항 해 핵 핸 핼 햄 햅 햇 했 
행 햐 향 허 헉 헌 헐 헒 험 헙 헛 헝 헤 헥 헨 헬 
헴 헵 헷 헹 혀 혁 현 혈 혐 협 혓 혔 형 혜 혠 ? 
[출처] 한글 ASCII CODE|작성자 암흑마왕

'한'의 아스키 값은 0xC7E1 입니다.
C7E1은 16진수->10진수 변환하면 51153값이 나오네요.

char(51153)을 사용했을때 '한'이 나타나는가요?


──────────────────────────────────

hoonjang의 이미지

제 경우는 잘 안되는 데요..
code 함수는 지원하는데.. 왜 그런지?

Prentice의 이미지

엑셀은 확장완성형을 쓰나보죠.

유니코드용 식이 아니라 그럼 확장완성형용 식을 구하시면 되겠습니다.

http://ko.wikipedia.org/wiki/KS_X_1001_%ED%95%9C%EA%B8%80_%EB%B6%80%EB%B6%84_%ED%91%9C

Prentice의 이미지

식이 없으면 CP949 표를 생성하셔서 참조를 하시면 어떨까 생각합니다.

Prentice의 이미지

정 어려우시면.............

엑셀 파일의 44160 51008 54644 이런 숫자를

&#44160;&#51008;&#54644; 이런 식으로 HTML 파일에 저장하신 뒤 열어보시면 검은해로 바뀌는 것을 보실 수 있습니다.

A1 &#
B1 44160
C1 ;

D1에 =A1&B1&C1 넣어보세요.

hoonjang의 이미지

맘속으로 너무 죄송합니다.
퍼뜩 알아들어야 하는데..

1. 우선 CP949 표를 생성해서 참조 하는 방법의 경우, 먼저



값을 각각 어떻게 읽어야 할지 못찾겠습니다.

2. D1에 =A1&B1&C1 넣어보면

A1 &#
B1 44160
C1 ;

D1에는 검
이렇게 나오는데요..



을 넣으면 ㅎ ㅏ ㄴ 처럼 나오는 것 밖에 상상이 안되네요.

죄송합니다. 애써 설명해 주시는데.. ^^

thames의 이미지

어떤 스프레드시트를 사용하시나요? 버전도 알려주시면 도움이 될 것 같습니다.


──────────────────────────────────

hoonjang의 이미지

어떤 버전이라도 상관은 없습니다.
관심 주셔서 감사합니다.

suapapa의 이미지

MS엑셀이라면 파이썬COM과 장혜식님의 hangul.py 를 사용해 쉽게? 하실 수 있으실 것 같네요.
테스트 해 볼 엑셀파일을 올려주시면 간단히 코드를 짜 보여 드리겠습니다.

hoonjang의 이미지

파이썬도.. 공부해보려고 했는데..
초보에겐.. 엑셀과 관련지어서 프로그램하는 일은 상상도 못했습니다.

덕분에 좋은 경험을 할 것 같습니다.

제가 생각하는 것은
OMR 카드에서 이름을 읽으면..
초성
중성
종성의 코드 번호로 저장되고,

프로그램은 이 코드 번호를 읽어서,
하나의 글자를 만들면 됩니다.

이후, 3글자를 모두 읽어서 하나의 이름으로 만들면 되지요.
(가능하다면, 4글자까지 - 제 친구이름에도 4글자가 있군요..)

생각하는 파일을 만들어 올려보겠습니다.
지금은 피씨방이라(엑셀이 없네요)
.. 제컴퓨터가 있는 곳에서.. 올리겠습니다.

정말 감사합니다.
파이썬com이란 것도 있군요.. ^^

hoonjang의 이미지

초성코드 중성코드 종성코드 초성코드 중성코드 종성코드 초성코드 중성코드 종성코드 이름글자1 이름글자2 이름글자3 이름
18 8 21 0 20 8 3 8 21 홍 길 동 홍길동

a1 - i1 은 OMR에서 읽은 값입니다.
확장 완성형이나, 완성형, 조합형의 경우는 코드값을 몰라서.. 유니코드로 값으로 했습니다.

OMR에서는 초성, 중성, 종성 값을 각각 읽어야 합니다.
엑셀 파일 업로드가 안되어서.. 이런식으로 올립니다. 감사합니다.

a1 이름 첫글자 초성코드 :18
b1 이름 첫글자 중성코드 :8
c1 이름 첫글자 종성코드 :21

d1 이름 둘째글자 초성코드:0
e1 이름 둘째글자 중성코드:20
f1 이름 둘째글자 종성코드:8

g1 이름 셋째글자 초성코드:3
h1 이름 셋째글자 중성코드:8
i1 이름 셋째글자 종성코드:21

j1 이름 첫글자 :홍
k1 이름 둘째글자 :길
l1 이름 셋째글자 :동

m1 이름: 홍길동

suapapa의 이미지

엑셀 파일 만들기가 번거롭네요.

압축해서 올려주시거나
제 메일로 쏴 주세요
ff4500골벵이gmail.com

hoonjang의 이미지

감사합니다.

Hyun의 이미지

괜찮으시다면 여기도 올려주시지...

suapapa의 이미지

파이썬COM과 hangul.py를 사용한 예제 올려드립니다.
보내주신 엑셀파일도 압축파일 안에 들어가 있습니다.

실행하시려면, Python(http://www.python.org/download/)과
파이썬 윈도 확장(http://sourceforge.net/projects/pywin32/)을 차례로 설치하셔야 합니다.

아래처럼 첨부된 OMR.zip을 풀어서 "GetNameFromOMR.py"를 실행 해 보면
그 디렉토리에 "이름읽기_test.xls"파일이 생성될 것 입니다.

첨부파일중 hangul.py는 장혜식님의 한글 코덱이고,
EasyExcel.py는 제가 여기 저기서 가져온 PythonCom을 이용한 엑셀 처리 클래스 입니다.

각 자음,모음의 유니코드 값이라고 해서 혼란스러웠는데 (어떻게 코드값에 0이 들어가지?)
초성, 중성, 종성의 인덱스인 듯 하네요.

'ㄱ' == 0

GetNameFromOMR.py를 열어서
_test() 함수부터 따라 올라가 보시면서,
어떻게 구현했는지 살펴보세요 :)

ps. MS 엑셀은 유니코드(UCS2)를 사용합니다. ANSI 아니죠~ cp949 아니죠~

댓글 첨부 파일: 
첨부파일 크기
Package icon OMR.zip12.07 KB
Image icon OMRtest.png4.6 KB
hoonjang의 이미지

메일 드립니다. ㅎㅎ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.