StartprogrammingusingObjectPascal:Files
파일
파일은 운영체제와 프로그램의 중요한 요소입니다. 운영체제 구성요소들은 파일로 존제하며 사진이나 책, 프로그램, 간단한 텍스트 파일같은 정보나 데이터 역시 파일로 존재합니다.
운영체제는 읽기, 쓰기, 편집, 삭제와 같은 파일 관리를 제어합니다.
파일들은 수많은 관점에 따라 다양한 형태로 분류할 수 있습니다. 파일은 크게 실행 파일과 데이터 파일 두가지 형태로 나누어 볼 수 있습니다. 예를 들어 컴파일된 라자루스 프로그램의 바이너리들은 실행 파일이고 파스칼 소스코드(.pas)들은 데이터 파일입니다. 또한 PDF 책, JPEG 그림들도 데이터 파일입니다.
데이터 파일은 가지고 있는 내용에 따라 에 따라 두가지로 나누어 볼 수 있습니다.
- 텍스트 파일: 기록할 수 있거나 리눅스의 cat, vi 그리고 윈도우즈의 type, copy con과 같은 명령으로 운영체제 명령줄을 포함한 임의의 간단한 도구를 사용하여 읽어들일 수 있는 단순한 텍스트 파일입니다.
- 바이너리 데이터 파일: 구조가 훨씬 복잡하며 이들을 열기 위해 특별한 프로그램이 필요합니다. 예를 들어 그림 파일은 단순한 command line 도구로 열 수 없으며, 대신 GIMP, Kolour Paint, MSPaint 등과 같은 프로그램을 사용하여 열어야 합니다. 그림이나 음성 파일을 범용 에디터 프로그램으로 연다면, 사용자들이 인지할 수 없는 의미없는 문자들을 보게 될 것입니다. 바이너리 데이터 파일의 예로 적당한 프로그램을 사용하여 열어야 하는 데이터베이스 파일이 있습니다.
접근 형태에 따라 다른 방법으로 파일을 분류할 수 있습니다:
- 순차 접근 파일: 순차 접근 파일의 예로 고정되지 않은 크기의 레코드를 지닌 텍스트 파일이 있습니다. 제각각의 줄은 고유의 길이를 가지고 있어, 예로 들자면, (문자 단위의)세번째 줄의 시작 위치를 알 수 없습니다. 이러한 이유로 읽기 전용 또는 쓰기 전용으로 파일을 열 수 있으며, 파일의 마지막에 텍스트만 붙일 수 있습니다. 만약 파일의 중간에 텍스트를 넣고 싶다면, 파일의 내용을 메모리로 읽어야 하고, 수정을 가하고, 전체 파일을 디스크에서 지운 다음에, 수정된 텍스트를 파일에 덮어써야 합니다.
- 임의 접근 파일: 이 파일의 형식은 고정된 크기의 레코드를 가집니다. 레코드는 우리가 한번에 읽고 쓸 수 있는 작은 단위며, 바이트, 정수형, 문자열 또는 사용자가 지정한 레코드일 수도 있습니다. 동시에 읽고 쓸 수 있는데, 예를 들자면, 3번 레코드에서 읽어들여서 10번 레코드에 복사할 수 있습니다. 이 경우, 파일의 각각의 레코드에 대한 위치를 정확하게 알 수 있습니다. 레코드를 수정하는 것은 간단합니다. 임의 접근 파일에서는 파일의 나머지 부분에 영향을 주지 않고 그 어떤 레코드라도 바꾸고 덮어쓸 수 있습니다.