[파일처리] 가상디스크에서 파일의 레코드 관리기
- 등록일 / 수정일
- 페이지 / 형식
- 자료평가
- 구매가격
- 2007.04.23 / 2019.12.24
- 18페이지 / zip (압축파일)
- 평가한 분이 없습니다. (구매금액의 3%지급)
- 1,500원
추천 연관자료
- 하고 싶은 말
-
가상디스크를 생성하여 파일의 생성,삭제,수정,탐색을 하게 해줍니다.
디렉토리롤 파일을 관리합니다.
가상디스크의 블록은 FAT로 관리되어 파일이 이용하고 있는 블록을 알수 있게 해줍니다.
파일이 생성되면 200개의 가변길이 레코드가 생성되어 디스크에 저장됩니다.
각 블록에는 후미에 Slot을 두어 레코드의 키값에 따라 정렬되면서 들어간 위치를 가지고
있습니다. 레코드가 지정된 블록에 삽입될때 공간이 부족하면 기존에 있던 레코드들과 함께
분할되면서 다음 블록 및 현재 블록에 들어갑니다.
레코드에 관해서는 탐색,삭제,생성,수정 등이 가능 합니다.
- 본문내용
-
Ⅰ. 레코드관리기 알고리즘 개요
1. 블록상의 slot을 위한 클래스 정의
각 블록에는 레코드의 시작 주소 및 키 값을 저장하고 있는 slot이 후미에서부터 동적으로 생성된다. 이를 위하여 클래스 상에는 레코드의 시작 주소를 저장할 Raddr 및 키 값을 저장 할 Rkey 배열을 선언하고, 해당 레코드에 대하여 slot상에 상기 두 배열의 인덱스를 저장하여 관리한다. 이에대한 클래스 정의는 아래와 같다.
class DataBlock{
friend vDisk;
protected:
char DataSaveSpace[MaxBlk];
private:
int freespace; // 자유공간을 표시하는 변수
int Raddr[20]; // 레코드의 시작 인덱스를 저장할 배열
int Rkey[20]; // 레코드의 키 값을 저장할 배열
};
2. 레코더 생성 시 버퍼로 활용할 클래스 정의
각 레코드는 char형의 키 값 저장을 위한 배열 및 레코드의 길이를 저장 할 int형 변수, 데이터를 저장할 공간이 필요하다. 레코드에는 그 길이를 데이터블록의 첫 4byte에 저장한다. 이를 위한 클래스 선언은 아래와 같다.
class RecordBlock:public DataBlock{
friend vDisk;
private:
char KeyNum[4]; // 레코드의 키 값을 저장할 배열
int len; // 레코드의 길이를 저장 할 변수
};
위 레코드를 위한 클래스는 디스크 블록을 위한 클래스를 상속하는 것으로서, DataSavaSpace를 사용 할 수 있다. 이 배열에는 해당 레코드의 데이터 값들이 저장된다.
자료평가
-
아직 평가한 내용이 없습니다.