C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[51894] Re:AVI 파일에서 HEX 값을 얻고자 합니다.
열씸! [cappuccino] 1798 읽음    2008-01-14 04:58
128번째라니... 헤더포멧에는 없는 영역인것 같군요.
그냥 손쉽게
그 영역에 들어 있는 데이타가 double(8바이트) 에 준한 타잎이라면
double value;
FILE *fopen("test.avi", "rb"); // rb -> read binary (그냥 r만 하면 아스키로 읽어 똑같은 문제가)
fseek(fp, 128, SEEK_SET);
fread(&value, sizeof(value), 1, fp);
fclose(fp);
로 value에 받으시면 될테고,

그 안에 든 값이 아스키 형식이라면(그럴리야 없겠지만) char valuebuffer[8 + 1];
fread(valuebuffer, 8, 1, fp);
처럼 읽으시고
valuebuffer[8] = 0; 로 Termination 하시면 8바이트 문자열이 들어오겠죠.
그걸 정수로 바꾸시려면 int value = atoi(valuebuffer); 하시면 될꺼구요.

온새미 님이 쓰신 글 :
: 안녕하세요, 간만에 프로그램 짜봤더니 힘겨워서 이렇게 올리게 되네요 ㅎㅎ
:
: 제목처럼 제가 하려고 하는게 AVI 파일을 읽어들여서 HEX로 바꾼다는 것인데요, 메모장이나 기타 텍스트편집기 프로그램으로 AVI파일을 보게되면, 아래와 같이 펼쳐질겁니다.
:
: RIFFt? AVI LIST~"  hdrlavih8   醫                             ?                  LIST?  strlstrh8   vidsxvid            ?  ?         嵋               ?strf(   (      ?    XVID€?                 JUNK...
:
: 그런데, 여기에서 128번째 문자부터 135번째까지의 문자열값을 HEX로 변환하여 그 수치를 10진수로 바꿔서, 계산을 하고자 하는게 본 목적인데요, 제가 선택한 방법은 두가지 입니다. 하나는 Memo1->Lines->LoadFromFile을 통해서 읽은다음, 다른 Memo에다가 HEX값으로 변환하는 것, 또 다른 하나는 API함수를 쓰는 것인데요, CreateFile과 ReadFile을 사용했습니다. 하지만, 전자의 경우는 RIFFt? 까지만 읽어져서 도저히 그 이상 나가질 못하구요, 후자의 경우는 파일을 제대로 못읽어오는 것 같습니다. 읽어올때의 설정이나 그런걸 봐도 정상인 것 같았구요...
:
: 왜그런지 이유를 알 수가 없어서 이렇게 올려봅니다 :) 도와주시면 정말 감사하겠습니다!

+ -

관련 글 리스트
51891 AVI 파일에서 HEX 값을 얻고자 합니다. 온새미 1213 2008/01/13
51894     Re:AVI 파일에서 HEX 값을 얻고자 합니다. 열씸! 1798 2008/01/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.