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
[1660] Re:[질문]데이타들을 화일에서 읽고, 저장하기
박지훈.임프 [cbuilder] 3771 읽음    1999-07-26 00:00
: 안녕하세요.
: VC++에서 serialize(archive)를 썼었는데 그것을 대체할 것을 찾다가
: 구조체를 이용한 파일처리를 구현해 보았습니다.
: 근데 SysData구조체가 잘 말을 안듣는군요. 좀 도와주세요.
: 그리고, 더좋은 방법이 있으면 알려주세요.
: data size는 약2KB(int 500개 정도)입니다.
:
: ==== SysData.cpp 내용 =====
: //----------------------------------------------------------
: #include <vcl.h>
: #pragma hdrstop
:
: #include "SysData.h"
:
: //----------------------------------------------------------
: #pragma package(smart_init)
: BOOL LoadData(void)
: {
:     int iFileHandle = FileOpen("SysData.txt", fmOpenRead);
:     if(iFileHandle == -1) {
:         iFileHandle = FileCreate("SysData.txt");
:         SysData.MotBdBankAddr = 1;
:         SysData.MotBdRelAddr1 = 1;
:         FileWrite(iFileHandle, &SysData, sizeof(SysData));
:     }
:     else {
:         FileSeek(iFileHandle, 0, 0);
: //            return FALSE;
:         FileRead(iFileHandle, &SysData, sizeof(SysData));
:     }
:     FileClose(iFileHandle);
:     return TRUE;
: }
: //----------------------------------------------------------
: BOOL SaveData(void)
: {
:     int oFileHandle = FileOpen("SysData.txt");//, fmOpenWrite);
:     if(oFileHandle == -1) {
:         ShowMessage("화일쓰기 오류");
:         return FALSE;
:     }
:     FileWrite(oFileHandle, &SysData, sizeof(SysData));
:     FileClose(oFileHandle);
:     return TRUE;
: }
: //----------------------------------------------------------
:
:
: ==== SysData.h 내용 =====
: //----------------------------------------------------------
: #ifndef SysDataH
: #define SysDataH
: //----------------------------------------------------------
: #endif
: struct {
:     //Board Addr Form
:     int MotBdBankAddr;
:     int MotBdRelAddr1;
:     //이하생략
: } SysData;
: //----------------------------------------------------------
: BOOL LoadData(void);
: BOOL SaveData(void);



임펠리테리입니다.

어떤 부분이 잘 안된다는 것인지 구체적으로 적어주셨으면 좋았을 걸 그랬군요.
보여주신 소스에서는 별다른 잘못된 점이 보이지 않습니다. 다시 질문을 해주시면
좋겠군요.

그리고.. API 파일 함수들을 그대로 써도 좋지만, 빌더에서 쓰려면 그보다는
TFIleStream을 쓰는게 여러모로 편합니다. 클래스 자체는 그냥 API의 파일 함수들을
클래스화한 정도일 뿐이지만, 빌더에서는 여러가지 연관된 스트림 계열의 함수들이 많이
있으니까요.

그럼 참고하시길...

+ -

관련 글 리스트
1658 [질문]데이타들을 화일에서 읽고, 저장하기 이기송 3452 1999/07/26
1660     Re:[질문]데이타들을 화일에서 읽고, 저장하기 박지훈.임프 3771 1999/07/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.