PSP xvi

PSPプログラミングを教えるブログ(本気で頑張る人アクセス大歓迎サイト)

PSP-X.gif

記事の間違いを報告  新アップローダー
記事修正情報 PSPプログラミング資料 自作ゲーム PSP用エミュレータ リンク

公認リンク
公式PSP専科 公式PSVita専科 はじめるPSPSDK PSP EXEC GAME M@STER PSP 猫山のYouTubeチャンネル

TAG
全記事にタグをつけています  http://nekoyama2gillien.blog36.fc2.com/?tag=タグ
PSP PSPプログラミング DXライブラリPortable OSLib ショートプログラム ハローワールド
PSP自作ゲーム PSP自作ソフト エミュレータ ゲームアーカイブス PSP動画
動画 初音ミク ミクミクダンス MMDドラマ ゲーム 魔法少女まどか☆マギカ 侵略!イカ娘
アイドルマスター

このブログについて

このブログでは、非公式のPSPソフト、いわゆる自作ソフト( PSP Homebrew )を作る事を目的とします。

著作権などの こまかい利用規約については、こちらを開いてお読み下さい

このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ


当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。


このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[edit]

CM: --
TB: --

page top

メモリースティック内のファイル書き換えの方法


ファイルの書き換えは、2通りの場合について解説します
(1) ファイルサイズが変わらない場合(この記事で紹介
(2) ファイルサイズが変わる場合(次の記事で紹介


>> (1) ファイルサイズが変わらない場合
書き換えする前と後で、デバイス上のファイルの並び方が物理的に変わらない場合です。
書き換えするデータ数が同じという条件

この場合の、ファイル書き換え方法の手順(日本語)

1. ファイルを読み書きモードで開きます
2. 書き換えする部分のデータを読み出します
3. 書き換え済みか調べます
4. 書き換え済みなら次の作業に移ります
5. 未書き換えなら、書き換える作業に入ります(以下)
6. ファイルの、書き換える位置にシーク命令で移動します
7. 必要なデータだけを書き込みます
8. ファイルを閉じます

上記を C++プログラミングしてみます

【 ファイル "ms0:/機密文書.TXT" の、
10バイト目からの連続8バイトデータ "ULTRAMAN" を "GORENJER"に書き換える例 】

この関数のコピペ&利用&改造は、ご自由にどうぞ。
赤い文字の部分は必要に応じて書き換える箇所です

// ファイルのデータ書き換え関数サンプル(同じデータ数での書き換え)
int File_Kakikae(void)
{
int fp;
char buff[256]; // バッファサイズは、書き換えに余裕の256バイト長だ

fp = sceIoOpen("ms0:/機密文書.TXT", PSP_O_RDONLY|PSP_O_WRONLY, 0777);
if(fp <0) // ファイル・オープンエラーなら
{
sceIoClose(fp); // ファイルを閉じて
return -1; // ファイルが開けないエラー
}
sceIoLseek(fp, 0, PSP_SEEK_SET); // ファイルの先頭へ移動
sceIoLseek(fp, 10, PSP_SEEK_CUR); // ファイルの10バイト目へ移動
sceIoRead(fp, buff, 8); // fpから、8バイトのデータ読み込み

if(memcmp(buff,"ULTRAMAN",8)==0) // 書き換え前か確認して
{ // 書き換え前なら書き換える(以下)
sceIoLseek(fp, 0, PSP_SEEK_SET); // ファイルの先頭へ移動
sceIoLseek(fp, 10, PSP_SEEK_CUR); // ファイルの書き換え位置へ移動
sceIoWrite(fp, "GORENJER", 8); // 書き換えデータを書き込む
}
sceIoClose(fp); // ファイルを閉じる
return 0; // 正常終了
}



FILE *fp; での記述例は省略します。


【 関連記事 】
PSPプログラミング ファイルを開く手順をM@STERしよう!
PSPプログラミング ファイルサイズの取得をM@STERしよう!
PSPプログラミング メモリの確保(割り当て)をM@STERしよう!
PSPプログラミング ファイルの読み込みをM@STERしよう!
PSPプログラミング ファイルを閉じて・・・・・。
PSPプログラミング 忘れちゃダメよ!メモリの解放
PSPプログラミング メモリースティック内のファイル書き換え方法 その1
PSPプログラミング メモリースティック内のファイル書き換え方法 その2

関連記事
スポンサーサイト

[edit]

CM: 0
TB: 0

page top

この記事に対するコメント

page top

コメントの投稿

Secret

page top

トラックバック

トラックバックURL
→http://nekoyama2gillien.blog36.fc2.com/tb.php/173-c7a3ae2d
この記事にトラックバックする(FC2ブログユーザー)

page top


h o m e |


 

2017-06