파일 객체 [AHK_L 42+]

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

목차

메쏘드

Read

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

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

Returns a string.

Write

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

File.Write(String)
String
A string to write.

Returns the number of bytes (not characters) that were written.

ReadLine

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

TextLine := File.ReadLine()

Returns a line of text. 여기에는 파일과 그 파일을 여는 데 사용된 EOL 플래그에 따라 `n, `r`n 또는 `r이 포함될 수 있습니다.

65,534 문자 길이 까지 줄을 읽을 수 있습니다. If the length of a line exceeds this, the remainder of the line is returned by subsequent calls to this method.

WriteLine

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

File.WriteLine(String)
String
An optional string to write.

Returns the number of bytes (not characters) that were written.

ReadNumType

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

Num := File.ReadNumType()

NumType is either UInt, Int, Int64, Short, UShort, Char, UChar, Double, or Float. These type names have the same meanings as with DllCall().

Returns a number if successful, otherwise an empty string.

If a Try statement is active and no bytes were read, an exception is thrown. However, no exception is thrown if at least one byte was read, even if the size of the given NumType is greater than the number of bytes read. Instead, the missing bytes are assumed to be zero.

WriteNumType

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

File.WriteNumType(Num)
Num
A number to write.

NumType is either UInt, Int, Int64, Short, UShort, Char, UChar, Double, or Float. These type names have the same meanings as with DllCall().

Returns the number of bytes that were written. 예를 들면 WriteUInt는 성공하면 4를 돌려줍니다.

RawRead

Reads raw binary data from the file into memory and advances the file pointer.

File.RawRead(VarOrAddress, Bytes)
VarOrAddress
데이터가 복사될 변수 또는 메모리 주소. 사용법은 NumGet()과 비슷합니다. 변수가 지정되어 있으면, 필요한 경우 자동으로 확대됩니다.
Bytes
읽을 바이트의 최대 개수.

Returns the number of bytes that were read.

If a Try statement is active and Bytes is non-zero but no bytes were read, an exception is thrown. AtEOF can be used to avoid this, if needed.

RawWrite

Writes raw binary data to the file and advances the file pointer.

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

Returns the number of bytes that were written.

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 a non-zero value if successful, otherwise zero.

Tell

Returns the current position of the file pointer, where 0 is the beginning of the file.

Pos := File.Tell()
Pos := File.Position
Pos := File.Pos

Close

파일을 닫습니다. 캐쉬에 있는 데이터를 디스크로 비웁니다. 공유 잠금을 해제합니다.

File.Close()

객체가 해제되면 자동으로 파일이 닫히지만, 가능하면 빨리 닫기를 권장합니다.

Properties

Length

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

FileSize := File.Length
File.Length := NewSize

FileSize and NewSize is the size of the file, in bytes.

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

AtEOF

Retrieves a non-zero value if the file pointer has reached the end of the file, otherwise zero.

IsAtEOF := File.AtEOF

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

Encoding

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

RetrievedEncoding := File.Encoding
File.Encoding := NewEncoding

RetrievedEncoding and NewEncoding is a numeric code page identifier (see MSDN) or one of the following strings:

RetrievedEncoding is never a value with the -RAW suffix, regardless of how the file was opened or whether it contains a byte order mark (BOM). NewEncoding 설정만으로 BOM이 붙거나 제거되지 않습니다. BOM은 보통 처음 파일이 생성될 때 씌여집니다.

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

Handle [v1.1.35+]

Alias of __Handle.

File.Handle

__Handle

Returns a system file handle, intended for use with DllCall(). CreateFile을 참조하십시오.

File.__Handle

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