제목 : Re : 비주얼베이직 순차처리
글번호:
|
|
905
|
작성자:
|
|
레드플러스
|
작성일:
|
|
2005/04/07 오후 8:10:00
|
조회수:
|
|
4298
|
우선 제 책을 사용해주셔서 감사드립니다.
질문주신것처럼 텍스트 파일에서 데이터를 읽어와서 프로그램내에서 처리하고자
할 때에는 영문 데이터는 문제가 없는데, 한글 데이터는 문제가 발생합니다.
그래서, 제 책에서는 순차 파일 처리 방식을 사용하지 않고 랜덤 파일 처리 방식을 사용하여
한글 파일에 대한 문제점을 해결하였습니다.
하지만, 순차 파일 방식으로 해당 문제를 접근하고자 할 경우에는
먼저 올려주신 소스에서 아래 주석 처리된 부분을 검토해주시기 바랍니다.
입력데이터를 3단계에 걸쳐서 유니코드로 변경후 나머지 로직을 적용하시면 됩니다.
책에 약력 입력하는 부분에서 여기를 적는 바람에 이곳에 문의를 주셨군요.
다음에는 라이센스랜드(http://www.LicenseLand.com/)에 질문 올리시면
더 좋을 듯 합니다.
원하시는 질문에 대한 답변이 되어드렸는지 모르겠네요...
그럼, 좋은 하루 되세요...
아래 소스는 님께서 올려주신 내용에 한글 데이터 처리 로직을 추가한 내용입니다.
참고하세요...
' 영진출판사 모의고사13번의 문제2를 순차파일로 작성한것임
Option Explicit
Dim 시작행 As Double, 끝행 As Double
Dim 줄수 As Double, 레코드 As String
Dim 누적점수 As Double, 숙박요금 As Double
Dim 계산값 As Double, 최소값 As Double
Private Sub Form_Load()
시작행 = Val(Left(Command, InStr(Command, Space(1))))
끝행 = Val(Mid(Command, InStr(Command, Space(1))))
Open "C:\c_it\data\abc0013.txt" For Input As #1
Open "C:\c_it\data\ans2.txt" For Output As #2
최소값 = 999999
For 줄수 = 1 To 끝행
Line Input #1, 레코드
If 줄수 >= 시작행 Then
'===========변경한 부분===============
레코드 = StrConv(레코드, vbFromUnicode) '[1] 한글이건 영문이건 무조건 1Byte ASCII로 변경
레코드 = MidB(레코드, 1, 91) '[2] 그 중에서 문제에서 주어진 91Byte(한줄) 읽어옴
레코드 = StrConv(레코드, vbUnicode) '[3] 한글이건 영문이건 1글자로 취급하기 위해 Unicode로 변경
' 아래 코드는 평소 사용하시던 방식대로 사용하시면 됩니다.
누적점수 = Val(Right(레코드, 5))
숙박요금 = Val(Mid(레코드, 17, 6))
'======================================
계산값 = 누적점수 + (숙박요금 * 0.4)
If 최소값 > 계산값 Then
최소값 = 계산값
End If
End If
Next 줄수
Print #2, 시작행; 끝행; 최소값
Debug.Print 시작행; 끝행; 최소값
Close
End
End Sub
On 2005-04-07 오후 5:30:00, '조영훈' wrote:
------------------------------------------------------------
>좋은책을 만드셔서 잘보고 참고하고 있습니다. 감사합니다. 선생님께서 저작하신 정보처리기능사 실기 문제집을 참고로 가르치고 있습니다만 한가지 해결하지 못하여 고민하다가 이곳 저곳 묻다가 저자약력을 보고 이렇게 글을 올립니다. 작년까지만해도 순차파일(폼이용)로 교육하다가 금년부터 영진출판사 문제집을 기준으로 기능사 취득 준비를 시키고 있습니다만 자료가 한글이 없는 것은 문제가 없으나 한글자료는 결과가 일치하지 않아 해결을 보지 못하고 있어 선생님의 조언이 절실해졌습니다. 모의고사 13, 2번문제를 순차파일로 작성한 것을 보내드리오니 바쁘신 중에도 지적해 주시면 본교의 기쁨으로 여기겠습니다. 아울러 내년도판에는 참고하시면 고맙겠습니다. 2005. 4. 7 전북 익산시 원광정보예술고등학교 조영훈 올림
------------------------------------------------------------