class File extends Object
Provides an interface for file input/output, such as reading or writing text or retrieving its length. FileOpenは、このタイプのオブジェクトを返します。
「File」はクラスそのものなので、以下ではあらゆるFileオブジェクトのプレースホルダとして 「FileObj」を使用します。
Objectから継承されたメソッドとプロパティに加えて、Fileオブジェクトは以下の定義済みのメソッドとプロパティを持ちます。
ファイルから文字列を読み出し、ファイルポインタを進める。
String := FileObj.Read(Characters)
型:整数
省略された場合、ファイルの残りの部分が読み込まれ、1つの文字列として返されます。それ以外の場合は、読み込む最大文字数を指定する。Fileオブジェクトがコンソールバッファやパイプなどの非シーキングデバイスへのハンドルから作成された場合、このパラメータを省略すると、メソッドが失敗するか、現在利用可能なデータのみを返すことがあります。
型:文字列
This method returns the string of characters that were read.
文字列をファイルに書き込み、ファイルポインタを進める。
BytesWritten := FileObj.Write(String)
型:文字列
The string to write.
型:整数
This method returns the number of bytes (not characters) that were written.
ファイルからテキストを1行読み出し、ファイルポインタを進める。
TextLine := FileObj.ReadLine()
型:文字列
This method returns a line of text, excluding the line ending.
最大65,534文字までの行を読み取ることができます。行の長さがこれを超える場合、それ以降このメソッドを呼び出すと、行の残りが返されます。
Writes a line of text to the file and advances the file pointer.
BytesWritten := FileObj.WriteLine(String)
型:文字列
If blank or omitted, an empty line will be written. Otherwise, specify the string to write, which is always followed by `n
or `r`n
, depending on the EOL flags used to open the file.
型:整数
This method returns the number of bytes (not characters) that were written.
ファイルから数値を読み出し、ファイルポインタを進める。
Num := FileObj.ReadNumType()
NumTypeは、UInt、Int、Int64、Short、UShort、Char、UChar、Double、Float のいずれかです。これらの型名は、DllCallと同じ意味を持ちます。
Type: Integer, Float or String (empty)
On success, this method returns a number. On failure, it returns an empty string.
読み込んだバイト数が0でなく、NumTypeのサイズより小さい場合、不足するバイトは0とみなされます。
ファイルに数値を書き込み、ファイルポインタを進める。
BytesWritten := FileObj.WriteNumType(Num)
NumTypeは、UInt、Int、Int64、Short、UShort、Char、UChar、Double、Float のいずれかです。これらの型名は、DllCallと同じ意味を持ちます。
型:整数
This method returns the number of bytes that were written. For example, FileObj.WriteUInt(42)
returns 4 if successful.
ファイルから生のバイナリデータをメモリに読み込んで、ファイルポインタを進める。
BytesRead := FileObj.RawRead(Buffer , Bytes)
データを受け取るBufferのようなオブジェクトまたはメモリアドレス。
Bufferへの読み込みを推奨します。Bytesが省略された場合、デフォルトでバッファのサイズになります。Bytesがバッファのサイズを超える場合は例外が発生します。
メモリアドレスを渡す場合は、Byteも指定する必要がある。
型:整数
読み出す最大バイト数を指定します。Bufferがオブジェクトの場合はオプション、それ以外の場合は必須とします。
型:整数
This method returns the number of bytes that were read.
ファイルに生のバイナリデータを書き込み、ファイルポインタを進める。
BytesWritten := FileObj.RawWrite(Data , Bytes)
バイナリデータを含むBufferのようなオブジェクトまたは文字列、またはメモリアドレス。オブジェクトまたは文字列が指定された場合、Bytesはオプションであり、デフォルトはバッファまたは文字列のサイズです。それ以外の場合は、Bytesも指定する必要があります。
型:整数
書き込むバイト数を指定します。Dataがオブジェクトまたは文字列の場合はオプション、それ以外の場合は必須とします。
型:整数
This method returns the number of bytes that were written.
ファイルポインタを移動します。
IsMoved := FileObj.Seek(Distance , Origin)
型:整数
移動する距離(バイト単位)。値が小さいほど、ファイルの先頭に近い。
型:整数
If omitted, it defaults to 2 when Distance is negative and 0 otherwise. Otherwise, specify one of the following numbers to indicate the starting point for the file pointer move:
On success, this method returns 1 (true). On failure, it returns 0 (false).
This method is equivalent to FileObj.Pos := Distance
, if Distance is not negative and Origin is omitted or 0 (SEEK_SET).
ファイルを閉じ、キャッシュ内のデータをディスクにフラッシュし、共有ロックを解除します。
FileObj.Close()
オブジェクトが解放されると自動的にファイルが閉じられますが、できるだけ早くファイルを閉じることをお勧めします。
ファイルポインタの位置を取得または設定します。
CurrentPos := FileObj.Pos
FileObj.Pos := NewPos
CurrentPos and NewPos are a byte offset from the beginning of the file, where 0 is the first byte. ファイルにデータが書き込まれたり、ファイルから読み出されたりすると、ファイルポインタは自動的にそのデータの次のバイトに移動します。
This property is equivalent to FileObj.Seek(NewPos)
.
ファイルサイズを取得または設定します。
CurrentSize := FileObj.Length
FileObj.Length := NewSize
CurrentSize and NewSize are the size of the file, in bytes.
このプロパティは、実際のファイルに対してのみ使用する必要があります。Fileオブジェクトがパイプへのハンドルから生成された場合、パイプの内部バッファで現在利用可能なデータ量を返すかもしれませんが、この動作は保証されていません。
Retrieves a non-zero number if the file pointer has reached the end of the file, otherwise zero.
IsAtEOF := FileObj.AtEOF
このプロパティは、実際のファイルに対してのみ使用する必要があります。Fileオブジェクトがコンソールバッファやパイプなどの非シーキングデバイスへのハンドルから作成された場合、そのようなデバイスは論理的に「ファイルの終わり」を持たないため、戻り値は意味をなさないかもしれません。
このファイルオブジェクトが使用するテキストエンコーディングを取得または設定します。
CurrentEncoding := FileObj.Encoding
FileObj.Encoding := NewEncoding
NewEncodingには、数値のコードページ識別子(Microsoft Docsを参照)または以下の文字列のいずれかを指定します。
CurrentEncodingは、以下の文字列のいずれかである:
UTF-8
:Unicode UTF-8、CP65001 と同等です。UTF-16
:CP1200 に相当するリトルエンディアンバイトオーダーの Unicode UTF-16 です。CPnnn
:数値識別子nnnを持つコードページです。CurrentEncodingは、ファイルの開き方やバイトオーダーマーク(BOM)の有無にかかわらず、接尾辞-RAW
を持つ値ではありません。NewEncodingを設定しても、BOMが追加されたり削除されたりすることはありません。通常、BOMは最初にファイルを作成するときに書き込まれるためです。
NewEncodingにUTF-8-RAW
またはUTF-16-RAW
を指定することは有効ですが、-RAW
という接尾辞は無視されます。これはFileObj.Encoding
にのみ適用され、FileOpenには適用されません。
DllCallで使用することを目的としたシステムファイルハンドルを返します。CreateFileを参照してください。
Handle := FileObj.Handle
ファイルオブジェクトは、内部的に読み書きをバッファリングします。データがオブジェクトの内部バッファに書き込まれている場合、ハンドルが返される前にディスクにコミットされます。If the buffer contains data read from file, it is discarded and the actual file pointer is reset to the logical position indicated by the Pos property.