CTRPFの関数について少し解説していこうと思います。いつまで続くかな?
間違いがあるかもしれませんが、ご了承ください。
目次:
Fileクラスとは?
Fileクラスにはファイルを操作する関数があります。(ファイル作成、削除、書き込み、読み込み etc...)
普通はファイルクラスはあまり使わないと思いますが、便利な機能がたくさんあるCTRPFを作りたい時には欠かせませんね!!!!!!!!!!!!!!!!!!!!!!!!!
Fileクラスの使い方
File::Create
ファイルを新規作成します。
戻り値: OPResult
使用例:
File::Create("file.txt"); //プラグインと同じフォルダに"file.txt"を作成する。 File::Create("../file.txt"); //プラグインがあるパスの1つ前のフォルダに"file.txt"を作成する。
File::Rename
ファイルの名前を変更します。
戻り値: OPResult
使用例:
File::Rename("file.txt", "file2.txt") //file.txtの名前を、"file2.txt"に変更する。
File::Exists
ファイルの存在確認をします。
戻り値: ファイルが存在したら1が返ってくる。存在しなかったら0が返ってくる。
使用例:
if(File::Exists("file.txt")) //プラグインと同じフォルダに"file.txt"があった場合
File::Open
ファイルを開きます。
戻り値: OPResult
使用例:
File file; File::Open(file,"file.txt");//file.txtを開く
File::Close
ファイルを閉じます。
戻り値: OPResult
使用例:
File file; File::Open(file,"file.txt");//file.txtを開く file.Close();//file.txtを閉じる
File::Read
ファイルの中身を読みます。
戻り値: OPResult
使用例:
//あらかじめ、file.binに0xffffffffを書き込んでおく File file; u32 buf; File::Open(file,"file.bin");//file.binを開く file.Read((void*)&buf, sizeof(u32));//bufにfile.binの内容をu32のサイズ(4byte)分読み込む file.Close();//file.binを閉じる //buf = ffffffff;
File::Write
ファイルに書き込みます。
戻り値: OPResult
使用例:
File file; u32 data = 0xffffffff; File::Open(file,"file.bin");//file.binを開く file.Write((void*)&data, sizeof(u32));//dataの内容をにfile.binに書き込む file.Flush(); //後ほど説明 file.Close();//file.binを閉じる
File::WriteLine
ファイルに文字列を書き込みます。
自動で改行が追加されます。
戻り値: OPResult
使用例:
File file; File::Open(file,"file.txt");//file.txtを開く file.WriteLine("Hello World!");//flle.txtに"Hello World!"と書き込まれる。 file.Flush(); //後ほど説明 file.Close();//file.txtを閉じる
File::Seek
ファイルポインタの位置を変更します。
戻り値: OPResult
使用例:
//あらかじめ、file.binに、バイナリデータ 11 22 33 44と書いておく File file; u8 buf; File::Open(file,"file.bin"); file.Seek(1);//ファイルポインタを1つ動かす file.Read((void*)&buf,sizeof(u8));//bufには0x22が入れられる。 file.Close();
File::Tell
ファイルポインタの現在位置を取得します。
戻り値: u64 ファイルポインタの位置
使用例:
File file; File::Open(file,"file.bin"); file.Seek(1);//ファイルポインタを1つ動かす u64 fp = file.Tell(); // 上の行でポインタを1つ動かしたので、fp=1になる file.Close();
File::Rewind
ファイルポインタの位置をファイルの最初の位置にする。
戻り値: なし
使用例:
File file; File::Open(file,"file.bin"); file.Seek(1);//ファイルポインタを1つ動かす file.Rewind(); //ファイルポインタを最初の位置にする u64 fp = file.Tell(); //上の行でRewindしたため、0が返ってくる file.Close();
File::Flush
ファイルを保存する。
File::Writeだけだと、実際にファイルに保存されないので、この関数で、実際にファイルを保存させる。(File::Create/Removeの場合は不要、WriteやWriteLineを使用した場合のみ)
戻り値: OPResult
使用例:
File file; File::Open(file,"file.txt"); file.WriteLine("Hello"); file.Flush(); //保存する file.Close();
File::GetSize
ファイルのサイズを取得する。
戻り値: u64 ファイルサイズ
使用例:
File file; File::Open(file,"file.bin"); u64 size = file.GetSize();//ファイルサイズを取得 file.Close();
File::SetPriority
知らん
File::Dump
アドレスの値をダンプします
戻り値: OPResult
使用例:
File file; File::Open(file,"file.bin"); file.Dump(0x100000,4);//0x100000のアドレスの値を4byte分ダンプ file.Flush(); //保存 file.Close();
File::Inject
Dumpと逆のことをします。
ファイルの内容をメモリに書き込みます。
戻り値: OPResult
使用例:
//あらかじめ、file.binにバイナリデータ ff ff ff ffと書いておく File file; File::Open(file,"file.bin"); file.Inject(0x100000,4);//0x100000の値が0xffffffffになる file.Close();
File::IsOpen
ファイルが開かれているか確認します。
戻り値: bool
使用例:
File file; File::Open(file,"file.bin"); if(file.IsOpen())//ファイルがちゃんと開かれていたら OSD::Notify("File is Opening"); file.Close();
File::GetFullName
ファイルパスを取得します。
戻り値: std::string ファイルパス
使用例:
File file; File::Open(file,"file.bin"); std::string name = file.GetFullName();//"/luma/plugins/0004000000155100/file.bin"が返ってくる file.Close();
File::GetName
ファイル名を取得します。
戻り値: std::string ファイル名
使用例:
File file; File::Open(file,"file.bin"); std::string name = file.GetName();//"file.bin"が返ってくる file.Close();
File::GetExtension
ファイルの拡張子を取得します。
戻り値: std::string 拡張子
使用例:
File file; File::Open(file,"file.bin"); std::string ets = file.GetExtension();//"bin"が返ってくる file.Close();
File::File
コンストラクタ
File::Open以外の開き方
戻り値: なし
使用例:
File file1("file.bin"); // 1 File file2; File::Open(file2,"file.bin");//2 //1と2は同じ
終わりに
疲れた。
次回は無いかも。