파일 객체 [v1.0.90+]

파일 입/출력을 위한 인터페이스를 제공합니다. FileOpen이 이 유형의 객체를 돌려줍니다.

Read

문자열을 파일로부터 읽고 파일 포인터를 앞으로 이동시킵니다.

String := File.Read([Characters])
Characters읽을 문자의 최대 개수. 생략하면, 파일 나머지를 읽어서 하나의 문자열로 돌려줍니다. 콘솔 버퍼나 파이프 같이 포인터를 앞뒤로 이동시킬 수 없는 핸들로부터 파일 객체가 생성되었을 경우, 이 매개변수를 생략하면 메쏘드가 실패하거나 또는 현재 사용이 가능한 데이터만 돌려줄 가능성이 있습니다.
Returns문자열.

Write

문자열을 파일에 쓰고 파일 포인터를 앞으로 이동시킵니다.

File.Write(String)
String문자열.
Returns씌여진 바이트 개수 (문자 개수가 아님).

ReadLine

파일로부터 텍스트 한 줄을 읽고 파일 포인터를 앞으로 이동시킵니다.

Line := File.ReadLine()
Returns텍스트 한 줄. 여기에는 파일과 그 파일을 여는 데 사용된 EOL 플래그에 따라 `n, `r`n 또는 `r이 포함될 수 있습니다.

WriteLine

문자열을 씁니다. 파일을 여는 데 사용된 플래그에 따라 다음에 `n 또는 `r`n이 따라옵니다. 파일 포인터를 앞으로 이동시킵니다.

File.WriteLine([String])
String선택적인 문자열.
Returns씌여진 바이트 개수 (문자 개수가 아님).

ReadNum

지정한 바이트 개수만큼 파일로부터 읽고 파일 포인터를 앞으로 이동시킵니다.

Num := File.ReadNumType()
NumType다음 중 하나를 함수 이름에 직접 지정합니다:
UInt, Int, Int64, Short, UShort, Char, UChar, Double, 또는 Float.
Returns성공하면 바이트 개수, 그렇지 않으면 빈 문자열을 돌려줍니다.

WriteNum

지정된 바이트 개수 만큼 쓰고 파일 포인터를 앞으로 이동시킵니다.

File.WriteNumType(Num)
NumType다음 중 하나를 함수 이름에 직접 지정합니다:
UInt, Int, Int64, Short, UShort, Char, UChar, Double, 또는 Float.
Num숫자.
Returns씌여진 바이트 개수. 예를 들면 WriteUInt는 성공하면 4를 돌려줍니다.

RawRead

날 이진 데이터를 파일로부터 메모리로 읽어 들입니다. 변수가 지정되어 있으면, 필요한 경우 자동으로 확대됩니다.

File.RawRead(VarOrAddress, Bytes)
VarOrAddress데이터가 복사될 변수 또는 메모리 주소. 사용법은 NumGet과 비슷합니다.
Bytes읽을 바이트의 최대 개수.
Returns읽은 바이트 개수.

RawWrite

날 이진 데이터를 파일에 씁니다.

File.RawWrite(VarOrAddress, Bytes)
VarOrAddress데이터를 담고 있는 변수 또는 메모리의 데이터 주소. 사용법은 NumPut과 비슷합니다.
Bytes쓸 바이트 개수.
Returns읽은 바이트 개수.

Seek

파일 포인터를 이동시킵니다.

File.Seek(Distance [, Origin = 0])
File.Position := Distance
File.Pos := Distance
Distance바이트 단위로 이동할 거리. 값이 낮을 수록 파일의 앞 쪽에 가깝습니다.
Origin파일 포인터의 이동 시작 지점. 반드시 다음 중 하나가 되어야 합니다:
  • 0 (SEEK_SET): 파일의 처음. Distance는 0이상이어야 합니다.
  • 1 (SEEK_CUR): 파일 포인터의 현재 위치.
  • 2 (SEEK_END): 파일 끝. Distance는 보통 음의 정수입니다.
생략하면, Distance가 음의 정수일 때 Origin는 SEEK_END이 기본값이고 그렇지 않으면 SEEK_SET이 기본값입니다.
Returns성공하면 0-아닌 값을, 그렇지 않으면 0을 돌려줍니다.

Tell

Pos := File.Tell()
Pos := File.Position
Pos := File.Pos
Returns파일 포인터의 현재 위치. 0이면 파일의 처음입니다.

Length

파일의 크기를 열람하거나 설정합니다.

FileSize := File.Length
File.Length := NewSize
NewSize바이트 단위로, 파일의 새 크기.
Returns바이트 단위로, 파일의 크기.

이 특성은 실제 파일에만 사용해야 합니다. 파일 객체가 파이프를 가리키는 핸들로부터 생성되었다면, 파이프의 내부 버퍼에서 현재 사용가능한 양 만큼의 데이터를 돌려줄 수 있지만, 이 행위는 보증하지 않습니다.

AtEOF

IsAtEOF := File.AtEOF
Returns파일 포인터가 파일의 끝에 도달하면 0 아닌 값을, 그렇지 않으면 0을 돌려줍니다.

이 특성은 실제 파일에만 사용해야 합니다. 콘솔 버퍼나 파이프 같은 포인터-이동 없는 장치를 가리키는 핸들로부터 파일 객체가 생성되었다면, 반환 값은 의미가 없습니다. 그런 장치는 논리적으로 "파일 끝"이 없기 때문입니다.

Close

파일을 닫습니다. 캐쉬에 있는 데이터를 디스크로 비웁니다. 공유 잠금을 해제합니다. 객체가 해제되면 자동으로 파일이 닫히지만, 가능하면 빨리 닫기를 권장합니다.

File.Close()

매개변수도 없고 반환 값도 없습니다.

Encoding

이 파일 객체가 사용하는 텍스트 인코딩을 열람하거나 설정합니다.

Encoding := File.Encoding
File.Encoding := Encoding
Encoding숫자 코드 페이지 식별자 (MSDN 참조) 또는 다음 문자열 중 하나:
  • UTF-8: Unicode UTF-8, CP65001와 동등함.
  • UTF-16: Unicode UTF-16 작은 값 종료형 바이트 순서, CP1200와 동등함.
  • CPnnn: 숫치 식별자 nnn를 가진 코드 페이지.

인코딩-RAW 접미사를 붙이면 값을 돌려주지 않습니다. 파일이 어떻게 열렸든지 또는 안에 바이트 순서 표식 (BOM)이 들어 있든 말든 상관하지 않습니다. 인코딩 설정만으로 BOM이 붙거나 제거되지 않습니다. BOM은 보통 처음 파일이 생성될 때 씌여집니다.

v1.1.15.04+에서, 인코딩UTF-8-RAW이나 UTF-16-RAW으로 설정할 수 있습니다. 그러나 -RAW 접미사는 무시됩니다. 이전 버전에서, UTF-8-RAWUTF-16-RAW은 무효한 8-비트 인코딩처럼 행위하므로, 모든 비-ASCII 문자들이 폐기됩니다. 이것은 오직 File.Encoding에만 적용되지, FileOpen()에는 적용되지 않습니다.

__Handle

File.__Handle
Returns시스템 파일 핸들, DllCall과 함께 사용하는 것이 목적입니다. CreateFile을 참조하십시오.

파일 객체는 내부적으로 읽기와 쓰기를 버퍼 처리합니다. 데이터가 객체의 내부 버퍼에 씌여졌다면, 핸들을 반환하기 전에 디스크에 써야 합니다. 버퍼에 파일로부터 읽은 데이터가 들어 있다면, 그 데이터는 폐기되고 File.Pos가 가리키는 실제 파일 포인터는 논리 위치로 재설정됩니다.