visual basic 6.0 byte크기로 구조체에 파일을 읽고 싶습니다.

malja444의 이미지

안녕하세요..구조체에 텍스트 파일을 읽는것을 진행하고 있습니다.

예를들어

type pro

name as string *4

save_temp as string *8

end type

ABCD 하나둘셋 사자 이라는 텍스트 파일이 있을 경우에 제가 시도 해보고 있는것은 이진파일로

Open Pfilename For Binary As Pfilenumber

Get Pfilenumber, , pro.name 을 했을 경우 제가 원했던 abcd 가 정상적으로 들어갔습니다.

그런데 다시 한번더 Get Pfilenumber, , pro.save_temp 를 하면 제가 원하는것은 구조체에 save_temp가 8바이트

선언 되었기 때문에 하나둘셋 까지만 얻어 오고 싶습니다(한글자를 2바이트로 계산)

하지만 위의 코드를 하면 하나둘셋은 물론 사자 까지 다 까지 읽어 오게 됩니다...


제가 초보라서 방법을 몰라서..질문드리는데 abc같은 문자는 1바이트로 계산 글자는 2바이트로 계산해서

구조체에 할당된 만큼 파일을 읽어 올수 있는 방법좀 부탁드리겠습니다..

(랜덤파일이나 이진파일 어느방법이든 상관없습니다..)


초보라서 코드로 자세히 설명을 좀 부탁드릴께요..(현재는 글자도 1바이트로 인식을 합니다..)

랜덤 파일은 사용해야 하면 어떻게 해야하는지 자세히좀 부탁드려요.

shint의 이미지


문제해결에 필요한것들을. 찾아가는 다양한 방법에 대해서 알려드리겠습니다.

1byte 만 읽고 쓰는건. fread() 등에 파일 함수로도 가능합니다.

책 보시면 한글과 문자 관련해서 예제가 있습니다.
MFC (Visual C++) 책
C 책
C++ 책
Windows API 책
MSDN
인터넷 검색

구조체 패딩이라고 해서. 빈공간이 생기는 문제가 있으니. #pragma pack 구조체 패킹. 패딩 비트.등에 유의하시기 바랍니다.
혹은 아예 패딩이 생기지 않도록. 크기를 지정하셔야 합니다. 찾아서 테스트 해보세요.

국립국어원
http://www.korean.go.kr/

KLDP 에서 한글 검색
https://kldp.org/search/google?cx=partner-pub-6651292044448473%3Ajz430d1s80g&cof=FORID%3A11&query=%ED%95%9C%EA%B8%80&op=%EC%B0%BE%EA%B8%B0&hl=ko&safe=medium&form_build_id=form-FCTFoJ49NV4wPNbQX21zJDTcfrBs59CxTQvJ2j6C7hM&form_token=84da06de8f774c14c722256c3b2c18ee&form_id=google_cse_searchbox_form

KLDP Wiki
https://wiki.kldp.org/wiki.php

네이버와 구글에서 검색할 단어들
fread()
fread() MSDN
fread() MAN
C 언어 한글
TCHAR
UNICODE
UTF-8
ANSI
MULTIBYTE

데브피아 자료실. 강의실에서 한글 검색 - 여기 한글 관련 소스 예제가 많습니다.
http://search.devpia.com/MAEULResult.aspx?KeyW=%uD55C%uAE00&keyr=title&boardID=278&MAEULNo=20
http://search.devpia.com/MAEULResult.aspx?page=1&keyw=%ED%95%9C%EA%B8%80&keyr=title&boardID=51&MAEULNo=20

Windows API 프로그래밍
http://www.soen.kr/

cplusplus
http://www.cplusplus.com/reference/cstdio/fread/

정보처리기능사
정보처리산업기사
정보처리기사

컴퓨터과학과
전자계산과
정보통신과
직업 전문학교
도서관
서점

조합형
완성형
2 벌식
3 벌식
IME
Locale()
KS
Euc-kr
iconv()

네이버 책 검색
http://book.naver.com/search/search.nhn?query=%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EB%8A%A5%EC%82%AC

OLC 센터 - 무료강의
http://olc.oss.kr/search/list.jsp

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

익명 사용자의 이미지

저도 안해봤는데, 질문을 보니 Binary 모드에서 String 형을 이용하면 글자 수 기준으로 Input/Output을 하는 모양입니다.
그렇게 하지 말고, 원하시는 글자 크기만큼 바이트 배열을 선언해서 바이너리를 읽어온 뒤 그 값을 유니코드 문자열로 바꿔주면 됩니다.
(비주얼 베이직 6의 문자열 형은 내부적으로 유니코드를 사용)

다음 코드를 참고하시기 바랍니다.

Dim buf(7) As Byte ' ### 8바이트 배열
Get #파일번호, , buf
문자열 = StrConv(buf, vbUnicode)

댓글 달기

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 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.