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
[20424] Re:Re:Re:[질문]텍스트화일을 읽어서 DB에 저장하는 방법?
김백일 [cedar] 944 읽음    2002-07-26 17:35
이성희 님이 쓰신 글 :
: 김백일 님이 쓰신 글 :
: : 이성희 님이 쓰신 글 :
: : : 텍스트 화일을 한라인씩 읽어들여서 해당 사이즈만큼 DB에 저장하고 싶습니다.
: : :
: : : 예를 들어 한라인의 처음부터 5자리까지는 코드,6부터 10까지는 성명,11부터30까지는 주소
: : : 이런식으로 정해져 있는 텍스트 화일을 읽어서 DB의 해당 필드에 저장하고 싶습니다.
: : :
: : : 아직 부족한게 많아서 어떻게 해야할지 헤메고 있습니다.
: : : 고수님들의 조언 부탁드립니다.
: : :
: : : 무더운 날 모두 즐프하세요.
: :
: : 이렇게 필드의 길이가 고정되어 있는 경우라면
: : 굳이 한 라인 씩 읽을 필요는 없습니다.
: : 굳이 한 라인 씩 읽어서 처리하려면 제가 쓴 다음 글을 참고하세요.
: : http://www.borlandforum.com/impboard/impboard.dll?action=read&db=cpp_qna&no=767
: :
: : 그런 다음 필드를 분리하는 것은
: : 문자열의 서브스트링을 구하는 것입니다.
: : ANSI C++ 라이브러리의 string을 사용한다면 substr() 멤버함수를,
: : VCL의 AnsiString을 사용한다면 SubString() 멤버함수를 사용하시면 됩니다.
: :
: : string의 인덱스는 0부터, AnsiString은 1부터 시작한다는 점을 유의하셔야 합니다.
:
: 님아 제가 기초가 부족해서 그런지 막상 할려고 하니깐
: 잘 않되네요 좀 더 자세한 설명 부탁드려도 될까요?

"님아"라는 말은 상당히 실례되는 통신어체입니다.
이런 말은 쓰지 말아주세요!

: 아직 많이 초보라서 헤메고 있습니다.
: 예제라도 있으시면 부탁드립니다.
:
: 더운날씨 잘이겨내시고 즐거운 하루되세요 *^.^*

각 필드가 텍스트 파일에서 고정된 길이로 되어 있다면
한 라인 전부를 읽을 필요없이 다음과 같이 처리하는 방법도 있습니다.

EMP 테이블이 다음과 같이 작성되어 있고,

CREATE TABLE EMP (
  CODE CHAR(5)
  NAME CHAR(5)
  ADDR VARCHAR(20)
);

이 테이블을 Table1 으로 연결했다면,
다음과 같은 코드를 생각할 수가 있겠습니다.

// 맨 뒤에 '\0'을 붙여야 하므로 1을 추가합니다.
#define CODE_WIDTH 6
#define NAME_WIDTH 6
#define ADDR_WIDTH 21

    ....

if (Form1->OpenDialog1->Execute()){
  istream fin(Form1->OpenDialog1->FileName.c_str());
  if (!fin)
    ShowMessage("File Open Error!");
  else {
    char code[CODE_WIDTH], name[NAME_WIDTH], addr[ADDR_WIDTH];

    while (fin.getline(code, CODE_WIDTH).getline(name, NAME_WIDTH).getline(addr, ADDR_WIDTH))
        Table1->InsertRecord(ARRAYOFCONST((code, name, addr)));
  }
}

실행은 안 해봤습니다. 이상있으면 다시 질문하세요.

+ -

관련 글 리스트
20419 Re:Re:[질문]텍스트화일을 읽어서 DB에 저장하는 방법? 이성희 736 2002/07/26
20477     Re:Re:Re:[질문]텍스트화일을 읽어서 DB에 저장하는 방법? 김백일 749 2002/07/29
20424     Re:Re:Re:[질문]텍스트화일을 읽어서 DB에 저장하는 방법? 김백일 944 2002/07/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.