FileOpen()

提供: AutoHotkey Wiki
移動: 案内検索

実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 | キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル | レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト

FileOpen() [AHK_L 42+][編集]

AHKL ファイルを開く。

file := FileOpen(Filename, Flags [, Encoding])

Paramters[編集]

引数名 説明
Filename 開く対象ファイルのパスを指定する。相対パスの場合はA_WorkingDirを基準とする。
Flags 次表のフラグ値の組み合わせ(合計値)を指定する。英字の場合は列挙する。
Encoding BOMなしのときのコードページを指定する。 コードページ一覧を参照のこと。
省略時はA_FileEncodingが適応される。
 アクセスモードフラグ(いずれか一つのみ)
r 0x00 Read: 読み取り。該当ファイルが無い場合は失敗する。
w 0x01 Write: 新規書き込み。既存ファイルはサイズ0に強制上書きされるので注意!
a 0x02 Append: 追記。既存ファイルが無い場合は新規作成される。
rw 0x03 Update: 更新(読み+書き)。該当ファイルが無い場合は失敗する。
h この場合、FilenameはAHKLのオブジェクトとしてラッピングしたいファイルハンドルを指定する。共有モードフラグは無視される。ファイルハンドルの示すものは、オブジェクトの破棄時には自動的には閉じられずClose メソッドは何の効果も与えない。
(注意) Filenameにシーク不可能なデバイス(パイプや対話型デバイスなど)のファイルハンドルを指定した場合は、Seek, Tell, Length は利用すべきではない。
 共有モードフラグ
-rwd 読み取り/書き込み/削除用のロックをファイルに対して行う。r,w,dの任意の組み合わせが利用可能。
-を指定することは-rwdを指定することと同義である。いずれも指定がない場合は、全てのアクセスは共有される。
0x000 フラグが数値で共有モードフラグが未指定な場合は、ファイルはロックされる。
0x100 共有読み取り。
0x200 共有書き込み。
0x400 共有削除。
 行末(EOL)オプション
`n 0x04 読み取り時にCRLFをLFに、書き込み時にLFをCRLFに変換する。
`r 0x08 読み取り時に単独のCRをLFに置換する。

Returns[編集]

ファイルを開くのに成功した場合は、Fileオブジェクトを返す。失敗時は 0を返す。

If file または IsObject(file) とすることで結果の成否を判断できる。

Remarks[編集]

UTF-8 または UTF-16 形式のファイルが作成されるときは BOM が付与される。これは引数Encoding(あるいは引数省略時にA_FileEncodingに指定されている値)に "UTF-8-RAW" や "UTF-16-RAW" が指定されていない場合に生じる。

Related[編集]

FileEncoding, Fileオブジェクト, FileRead

Example(s)[編集]

; スクリプトファイルを読専で開いて最初の一行を読み取る。
file := FileOpen(A_ScriptFullPath, "r")
MsgBox % file.ReadLine()

; アプリケーションの標準入出力を行変換モードで開く。
; これは SciTE4AutoHotkey のような標準入出力を扱えるエディタで試すことができる。
stdin  := FileOpen(DllCall("GetStdHandle", "int", -10, "ptr"), "h `n")
stdout := FileOpen(DllCall("GetStdHandle", "int", -11, "ptr"), "h `n")
stdout.Write("Enter your query.`n\> ")
query := RTrim(stdin.ReadLine(), "`n")
stdout.WriteLine("Your query was '" query "'. Have a nice day.")