Q&A

  • Re: 레코드 구조의 TEXT -> DB
서영택 wrote:

> *.txt파일의 구조는 Header Record, Data Recodr, Trailer Record

> 3부분으로 나뉘어져있고

> 각레코드별 구분코드가 있고 80칼럼을 기준으로 1Record드가 작성되는데

> 레코드별로 라인구분없이 연속적으로 작성된 레코드입니다.

> Header와 Trailer는 1나씩 존재하지만 Data는 여러개가 존재합니다.

> 이것을 db에 저장하려고 하는데 방법을 몰라서 ...

> 빠른답변을 기다리겠습니다.

>

> -------------->Record구조<--------------

> [Header Record]

> H_Gubun : String[2];

> H_GiroNo : String[7];

> H_Date : String[6];

> H_No : String[6];

> H_Space : String[59];

>

> [Data Record]

> D_Gubun : String[2];

> D_Serial : String[7];

> D_Rdate : String[6];

> D_Code : String[6];

> D_FindNo : String[20];

> D_Amt : String[10];

> D_FrameNo : String[6];

> D_JangGubun : String[1];

> D_Sdate : String[6];

> D_Space : String[16];

>

> [Trailer Record]

> T_Gubun : String[2];

> T_Cnt : String[7];

> T_Amt : String[12];

> T_RejectCnt : String[7];

> T_RejectAmt : String[12];

> T_InfoCnt : String[7];

> T_InfoAmt : String[12];

> T_TotCnt : String[7];

> T_TotAmt : String[12];

> T_Space : String[2];

>

> 감사합니다.



안녕하세요 김영대입니다

엑셀의 csv 파일처럼 콤마로 구분된 파일이라면 공개된 소스가 많은데

질문을 보니 record 구조의 파일을 읽어서 처리하는 문제인것 같습니다

아래는 설명상 제 임의로 만든 레코드로 전체적인 흐름만 파악해 보세요



type

TDataIn = record

flag : string[1]; {'C':계속, 'E':끝}

seqno : string[4]; {연번}

medno : string[15]; {의료보험번호}

juminid : string[14]; {주민번호}

korname : string[12]; {성명}

medgr : string[5]; {등급}

monpay : string[11]; {보수월액, '999,999,999'}

meddate : string[10]; {자격취득일, yyyy.mm.dd}

dismonyn : string[1]; {취득월면제여부}

medbld : string[10]; {근무지, '서울시'}

end;



var

DataIn: TDataIn;

Fin: file of TDataIn;



....

AssignFile(Fin, 'data.txt');

System.Reset(Fin); {file open}

System.Seek(Fin, 0); {FilePoint 0}



Read(Fin, DataIn);

while not Eof(Fin) then

begin

QRL_seqno.Caption := seqno;

QRL_medno.Caption := medno;

QRL_juminid.Caption := juminid;

QRL_korname.Caption := korname;

QRL_medgr.Caption := SysUtils.Trim(medgr);

QRL_monpay.Caption := monpay;

QRL_meddate.Caption := meddate;

QRL_dismonyn.Caption := dismonyn;

QRL_medbld.Caption := medbld;

if (DataIn.Flag = 'E') then // 특정 구분의 레코드일때...

begin

QRL_medbld.Caption := '';

end;

Read(Fin, DataIn);

end;

System.Close(Fin);





1  COMMENTS
  • Profile
    서영택 1999.05.21 00:53
    김영대 wrote:

    > 서영택 wrote:

    > > *.txt파일의 구조는 Header Record, Data Recodr, Trailer Record

    > > 3부분으로 나뉘어져있고

    > > 각레코드별 구분코드가 있고 80칼럼을 기준으로 1Record드가 작성되는데

    > > 레코드별로 라인구분없이 연속적으로 작성된 레코드입니다.

    > > Header와 Trailer는 1나씩 존재하지만 Data는 여러개가 존재합니다.

    > > 이것을 db에 저장하려고 하는데 방법을 몰라서 ...

    > > 빠른답변을 기다리겠습니다.

    > >

    > > -------------->Record구조<--------------

    > > [Header Record]

    > > H_Gubun : String[2];

    > > H_GiroNo : String[7];

    > > H_Date : String[6];

    > > H_No : String[6];

    > > H_Space : String[59];

    > >

    > > [Data Record]

    > > D_Gubun : String[2];

    > > D_Serial : String[7];

    > > D_Rdate : String[6];

    > > D_Code : String[6];

    > > D_FindNo : String[20];

    > > D_Amt : String[10];

    > > D_FrameNo : String[6];

    > > D_JangGubun : String[1];

    > > D_Sdate : String[6];

    > > D_Space : String[16];

    > >

    > > [Trailer Record]

    > > T_Gubun : String[2];

    > > T_Cnt : String[7];

    > > T_Amt : String[12];

    > > T_RejectCnt : String[7];

    > > T_RejectAmt : String[12];

    > > T_InfoCnt : String[7];

    > > T_InfoAmt : String[12];

    > > T_TotCnt : String[7];

    > > T_TotAmt : String[12];

    > > T_Space : String[2];

    > >

    > > 감사합니다.

    >

    > 안녕하세요 김영대입니다

    > 엑셀의 csv 파일처럼 콤마로 구분된 파일이라면 공개된 소스가 많은데

    > 질문을 보니 record 구조의 파일을 읽어서 처리하는 문제인것 같습니다

    > 아래는 설명상 제 임의로 만든 레코드로 전체적인 흐름만 파악해 보세요

    >

    > type

    > TDataIn = record

    > flag : string[1]; {'C':계속, 'E':끝}

    > seqno : string[4]; {연번}

    > medno : string[15]; {의료보험번호}

    > juminid : string[14]; {주민번호}

    > korname : string[12]; {성명}

    > medgr : string[5]; {등급}

    > monpay : string[11]; {보수월액, '999,999,999'}

    > meddate : string[10]; {자격취득일, yyyy.mm.dd}

    > dismonyn : string[1]; {취득월면제여부}

    > medbld : string[10]; {근무지, '서울시'}

    > end;

    >

    > var

    > DataIn: TDataIn;

    > Fin: file of TDataIn;

    >

    > ....

    > AssignFile(Fin, 'data.txt');

    > System.Reset(Fin); {file open}

    > System.Seek(Fin, 0); {FilePoint 0}

    >

    > Read(Fin, DataIn);

    > while not Eof(Fin) then

    > begin

    > QRL_seqno.Caption := seqno;

    > QRL_medno.Caption := medno;

    > QRL_juminid.Caption := juminid;

    > QRL_korname.Caption := korname;

    > QRL_medgr.Caption := SysUtils.Trim(medgr);

    > QRL_monpay.Caption := monpay;

    > QRL_meddate.Caption := meddate;

    > QRL_dismonyn.Caption := dismonyn;

    > QRL_medbld.Caption := medbld;

    > if (DataIn.Flag = 'E') then // 특정 구분의 레코드일때...

    > begin

    > QRL_medbld.Caption := '';

    > end;

    > Read(Fin, DataIn);

    > end;

    > System.Close(Fin);

    >

    >

    김영대님의 답변에 감사드립니다.

    제가 실력이 부족하여 해결을 하지못하고 염치없게 또질문을 드립니다.



    질1)Read()라는 함수는 한번에 모든 데이타를 읽어오는것입니까?



    질2)ReadLn()함수는 어떤 기능을 하는것입니까?





    • 윤미화
    • 1999.05.21 02:40
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 글쎄요.
      1999.05.21 21:25
      FindFirst,FindNext,Findclose 함수에 대해 델파이가 버그를 가지고 있습니다. 이 함수가 두군데 unit에 ...
    • 이정욱
      1999.05.21 02:42
      구창민님께서 만드신 디렉토리를 몽땅 날려버리는 소스 입니다. 참고하세요. 글구 질문은 http://www.del...
    • 안치봉
      1999.05.21 02:41
      >> 답변 글쎄요. NT는 안써봐서......흠~~~ 바보같은 답변일지는 모르지만 혹~ 폴더의 속성이 읽기전...
    • 용그니
    • 1999.05.21 00:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.21 07:00
      이곳 한델(http://www.delphi.co.kr) 자료실에 시리얼포트제어 컴포넌트가 있습니다. 상용으로는 ASyncPro...
    • 김영대
    • 1999.05.20 21:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 서영택
      1999.05.21 00:53
      김영대 wrote: > 서영택 wrote: > > *.txt파일의 구조는 Header Record, Data Recodr, Trailer Record >...
    • 황순영
    • 1999.05.20 20:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.21 00:56
      황순영 wrote: > 안녕하세요 > 좀 궁금한 것이 있는데.... > > 거의 구조가 비슷한 두개의 Project 파...
    • 구성호
    • 1999.05.20 19:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.21 02:46
      구성호 wrote: > 여기에서 에러가 자꾸 생깅깁니다. 제발 도와 주세요. > Printer.Canvas.Font.Size := ...
    • 초보운전
      1999.05.20 19:00
      죄송... 한글은 잘되더군요. 특수문자를 처리하는 방법을 부탁드립니다 리턴키(chr(13)+chr(10))와 같은...
    • 조영욱
    • 1999.05.20 17:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.20 19:34
      dbiSaveChanges(Table1.Handle)을 하시면 Table1이 저장됩니다. 정의는 아래와 같이 되어있구요.. functi...
    • 김명희
    • 1999.05.20 08:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • powerman
      1999.05.21 10:04
      김명희 wrote: > 안여하세요. > 또 다시 같은 질문합니다. > 디테일 갯수 설정 어떻게합니까? > 예> A4...
    • 이재민
    • 1999.05.20 07:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.20 08:20
      1. 같은방법으로 사용합니다. 단, 변수형은 각 언어에 맞게 고쳐주셔야 합니다. 2. Win32 API Bible이 있...
    • 김영대
      1999.05.20 20:23
      김희영 wrote: > 안녕하세요! > 델피언을 꿈꾸는 학생입니다... > > 질문의 내용은 다름이 아니오라 ...
    • 김영대
      1999.05.20 20:20
      김희영 wrote: > 안녕하세요! > 델피언을 꿈꾸는 학생입니다... > > 질문의 내용은 다름이 아니오라 ...
    • 안치봉
      1999.05.20 09:49
      김희영 wrote: > 안녕하세요! > 델피언을 꿈꾸는 학생입니다... > > 질문의 내용은 다름이 아니오라 ...
    • 한상훈
    • 1999.05.20 05:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정주영
      1999.05.20 19:34
      한상훈 wrote: > 질문한가지 더 올리겠습니다. > report 작성시 각 field의 길이를 고정시키고 > 더 긴...
    • 안치봉
      1999.05.20 04:41
      초보운전 wrote: > > 실행파일을 만들어 설치할경우 그 디렉토리위치는 > 주인 마음대로 일경우가 많습...
    • 최석기
      1999.05.20 04:05
      초보운전 wrote: > > 실행파일을 만들어 설치할경우 그 디렉토리위치는 > 주인 마음대로 일경우가 많습...
    • 한고은
    • 1999.05.20 03:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소병각
      1999.06.09 20:32
      한고은 께서 말씀하시기를... > CREATE PROCEDURE test2 @tbname char(20) AS > create table dbo.hgkim...
    • 이영일
    • 1999.05.20 02:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.05.20 20:32
      이영일 wrote: > Sun server에 있는 ISAM형식의 화일을 PC로 불러오고 싶습니다. > PC의 OS는 NT이구 >...
    • 박천문
    • 1999.05.20 01:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.20 19:27
      안녕하세요? 초기화보다는...제가 DB는 잘 모르지만 그 필드의 MinValue와 MaxValue를 정의해 놓으면 될것...
    • 마성수
    • 1999.05.20 00:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 송기원
      1999.05.20 04:20
      Tquery.CommitUpdate의 용도를 잘못 이해하고 계신듯 한데... 아님 제가 잘못 알고 있거나...허허... C...
    • 남윤혁
    • 1999.05.20 00:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유수
      1999.05.20 00:53
      안녕하세요. 물론 가능합니다. 아주 일반적으로 쓰고 있는 방식이기도 하구요. 특정셀을 선택하는 순간...
    • 안치봉
      1999.05.20 00:08
      김선경 wrote: > 2개의 프로그램에서 교신을 하기 위해 사용자 정의 메세지를 이용할려구 해요 > > a라...
    • 김선경
      1999.05.20 04:10
      호호.... 치봉님의 글 자~~알 읽었어요.... 한가지만 더 여쭤 봐도 실례가 아닌지... exe 프로그램( MD...
    • 안치봉
      1999.05.20 04:51
      김선경 wrote: > 호호.... 치봉님의 글 자~~알 읽었어요.... > 한가지만 더 여쭤 봐도 실례가 아닌지... ...