0
 35   4   1
  View Articles

Name  
   손병목  (2002-03-01 13:42:49, Hit : 13119, Vote : 1445)
Homepage  
   http://www.itmembers.net
Subject  
   예제로 익히는 파일 시스템(2) - 랜덤 접근 파일(下)
지난 시간에 이어 랜덤 파일 실습 계속합니다. 지난 시간과 마찬가지로 일단 폼을 만들고 코딩을 다 하고 난 다음에 설명을 드리도록 하죠.
소스 파일은 프로그래밍 소스 자료실에 있습니다.


  1. 지난 시간에 작성한 frmRandom 폼의 코드 창을 열어 cdmDisplay 개체의 Click 이벤트에 다음의 코드를 추가합니다.

    [조회] 단추를 누르면 frmDisplay 폼이 나타나도록 한 것입니다.

  2. 그러면 frmDisplay 폼을 만들어 봅시다.

    • 아래와 같이 폼을 디자인합니다. 지난 시간의 frmRandom과 거의 유사합니다.


    • 다음과 같이 속성 값을 변경합니다.


  3. 코드 창을 열어 다음과 같이 코딩을 합니다.


  4. 그럼 실행을 해보세요.
    • 실행을 하면 frmRandom 폼(랜덤 파일 실습 창)이 나타나죠. 데이터를 여러 개 입력하고 난 다음에
    • [조회] 단추를 눌러 frmDisplay 폼(랜덤 파일 조회 창)을 엽니다.
    • [<<] 와 [>>] 단추를 눌러 입력한 데이터를 앞 뒤로 검색해 봅니다.


코드를 살펴 볼까요?
① 부분은 지난 시간의 코드와 비슷합니다. tPerson이라는 새로은 데이터 형을 선언하고 몇 가지 변수를 선언하였습니다.
전체 레코드의 개수(iFileNumOfRec)와 현재 레코드의 위치(iCruRec)를 저장하기 위한 변수가 추가되었네요.

②는 사용자 정의 함수입니다.
Display_File( )이라는 Sub 함수를 만든 것입니다.
③,⑤,⑥을 살펴보면 Call Display_File 이라고 씌어진 부분 있죠? 바로 이 함수를 실행하라는 것이죠.
이 함수(프로시저)의 기능은 쉽게 이해됩니다.
Get 명령은 랜덤 파일을 읽을 때 사용합니다.
Get 파일 번호, 레코드 위치, 데이터와 같은 식으로 사용됩니다.
#iFileNum 파일을 열어서 tPerson이라는 데이터에서 iCurRec 위치의 레코드를 읽으라는 뜻입니다.
그렇게 읽어서 첫번째 텍스트 박스에 tPerson의 이름 필드(항목)의 내용을 표시합니다.(txtName.Text=tPerson.strName)
같은 방식으로 지역과 연락처도 표시합니다.

③은 폼이 열릴 때 자동으로 실행되는 부분인데, Form 개체의 Load 이벤트에 작성합니다.
파일을 랜덤 형식으로 열어서 전체 중에서 처음 레코드를 표시하라는 것입니다.
현재 레코드를 표시할 때 위 ②에서 작성한 Display_File 함수를 실행했습니다.
LOF 함수는 파일의 길이를 구할 때 사용합니다.
형식은 LOF(파일번호)와 같은 식으로 사용합니다.
따라서 위와 같이 LOF(iFileNum)는 현재 열린 파일(cardfile.txt)의 전체 길이를 구하라는 것입니다. 전체 길이를 구해서 Len(tPerson)으로 나누었습니다.
tPerson은 하나의 레코드가 들어갈 수 있는 변수이니까, 전체 레코드의 길이에서 하나의 레코드의 길이를 나누면 전체 레코드의 개수가 구해집니다.
대부분 레코드의 개수를 구할 때는 이와 같은 방법을 사용합니다. 이렇게 구한 전체 레코드이 개수를 iNumOfRec 변수에 저장을 하는 것이죠.

④는 Form 개체의 Unload 이벤트에 작성한 코드입니다.
폼을 닫을 때 현재 열린 파일을 닫아주라는 것입니다.

⑤는 [<<] 단추를 눌렀을 때 현재 레코드보다 앞쪽의 레코드를 표시하라는 것이죠.
단 현재 레코드의 위치(iCurRec)가 1보다 클 경우에만 그렇게 하라는 것입니다. 현재 레코드의 위치가 맨 처음(1) 레코드이면 그대로 두라는 뜻입니다.

⑥은 [>>] 단추를 눌렀을 때 현재 레코드보다 뒷쪽의 레코드를 표시하라는 것입니다.
단 현재 레코드의 위치(iCurRec)가 최종 레코드의 위치(iNumOfRec)보다 작을 경우에만 그렇게 하라는 것입니다.

만약 지난 시간의 내용을 이해하셨다면 이번 시간이 그리 어렵지는 않을 것입니다.
그러나 파일의 입출력과 관련하여 프로그래밍 경험이 없을 경우에는 개념적으로 이해되지 않는 부분이 많아 선뜻 이해하기 쉽지 않을 수 있습니다.
방법은 반복 학습밖에 없습니다.
몇 번 비슷한 예제를 만들고 실행하다보면 어느새 그 개념을 깨치게 되는 것이죠.

삼일절입니다.
행복한 하루 되시고요...
이상 동주아빠 손병목이었습니다.

Prev
   배포용 설치 프로그램 만들기

손병목
Next
   예제로 익히는 파일 시스템(2) - 랜덤 접근 파일(上)

손병목


Copyright 1999-2020 Zeroboard / skin by Zetyx