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
[50950] Re:Re:Re:Re:[질문]컴포넌트 사용하지 않고 엑셀 읽어오기
초보 [] 1661 읽음    2007-10-19 16:17
답변 감사합니다.
아래처럼 Bigin~ , End~ ,  CellNumber~ 를 바꿀려고 하는데 힘드네요.

TFileStream *FStream = new TFileStream(OpenDialog1->FileName, fmOpenRead);
한 다음에 Bigin 하고 data를 읽고 end 하면 되는건가요?
그럼 아래의 3개 함수를 수정하면 될거 같은데 Write를 Read로 바꾸는거는 맞는지요?
어떻게 읽어 와야 하는지 좀 도와 주십시요.

fmOpenRead Help를 찾아서 FileRead 예제로 해도 이상한 숫자가 들어오고 Error가 나네요.


void __fastcall XlsBeginStream_Read(TStream *XlsStream, const WORD BuildNumber)
{
    CXlsBof[4] = BuildNumber;
    XlsStream->ReadBuffer(CXlsBof, sizeof(CXlsBof));
}
void __fastcall XlsEndStream_Read(TStream *XlsStream)
{
    XlsStream->ReadBuffer(CXlsEof, sizeof(CXlsEof));
}
void __fastcall XlsReadCellNumber(TStream *XlsStream, const WORD ACol,
const WORD ARow, const double AValue)
{
?   
    CXlsNumber[2] = ARow;
    CXlsNumber[3] = ACol;
    XlsStream->ReadBuffer(CXlsNumber, sizeof(CXlsNumber));
    XlsStream->ReadBuffer(&AValue, 8);
}








장성호 님이 쓰신 글 :
: [TFileStream 을 쓸때 ]
:
: 파일이 새로만들때는 아래와 같이 하지만
: TFileStream *FStream = new TFileStream("c:\\e.xls", fmCreate);
:
: 이미 있는 파일을 읽어오거나 수정할때는 mOpenRead 나 fmOpenReadWrite 를 쓰셔야 합니다.
: TFileStream *FStream = new TFileStream("c:\\e.xls", fmOpenRead);
:
: * 모드  (F1 하세요)
: fmCreate    Create a file with the given name. If a file with the given name exists, open the file in write mode.
: fmOpenRead    Open the file for reading only.
: fmOpenWrite    Open the file for writing only. Writing to the file completely replaces the current contents.
: fmOpenReadWrite    Open the file to modify the current contents rather than replace them.
:
: 먼저 저장할때 는?
:
: 1. BOF 저장                                                   - 12 Byte
: 2. RK , Number , Label    를 반복해서 저장     - Cell Header(10~12 Byte ) + Data(4 Byte 또는 8Byte , 기타 )
: 3. EOF 저장                                                   - 4 BYTE
: 위와같은 순서가 되잖아요
:
:
: Cell Header는
:
: CXlsNumber와   CXlsRk 는 10Byte이구
: CXlsLabel 은 12 Byte여서 그렇게 표현한것입다.
:
: ...
:
: 그럼..

+ -

관련 글 리스트
50940 [질문]컴포넌트 사용하지 않고 엑셀 읽어오기 초보 1760 2007/10/19
50945     Re:[질문]컴포넌트 사용하지 않고 엑셀 읽어오기 장성호 2380 2007/10/19
50946         Re:Re:[질문]컴포넌트 사용하지 않고 엑셀 읽어오기 초보 1751 2007/10/19
50948             Re:Re:Re:[질문]컴포넌트 사용하지 않고 엑셀 읽어오기 장성호 1958 2007/10/19
50950                 Re:Re:Re:Re:[질문]컴포넌트 사용하지 않고 엑셀 읽어오기 초보 1661 2007/10/19
50951                     Re:Re:Re:Re:Re:[질문]컴포넌트 사용하지 않고 엑셀 읽어오기 장성호 1631 2007/10/19
50953                         Re:Re:Re:Re:Re:Re:[질문]컴포넌트 사용하지 않고 엑셀 읽어오기 unitas 1419 2007/10/19
50954                             Re:Re:Re:Re:Re:Re:Re:[질문]컴포넌트 사용하지 않고 엑셀 읽어오기 장성호 1699 2007/10/19
50956                                 Re:Re:Re:Re:Re:Re:Re:Re:[감사]감사합니다. unitas 1340 2007/10/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.