アドレス帳⑨ 『HSP3』


前回は編集処理の一部をみました。今回からは編集処理の続きをみていきます。
一覧から選択されたレコードの情報をバッファから取得し、「新規編集画面」の各入力項目の初期値としました。新規登録では、バッファに新たに追加しましたが、編集時は選択されたレコードのインデックス行を上書きします。

【lib_address.hsp】 修正分
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
//*********************************************
//    新規登録・編集処理
//*********************************************

*regist
//■書き込みデータ生成
saveData = ""
saveData += fun_saveAmend(name)
saveData += "," + fun_saveAmend(kana)
saveData += "," + fun_saveAmend(zip)
saveData += "," + ken_id
saveData += "," + fun_saveAmend(address)
saveData += "," + fun_saveAmend(address2)
saveData += "," + fun_saveAmend(biko)
//新規と編集で処理が異なる
if mode == "edit" {
noteadd saveData,listNo,1 //上書き
}else{
noteadd saveData,,0 //新規追加
}
bsave saveFile,dbData
goto *list
stop

バッファに追記、上書きするには「noteadd命令」を使います。「noteadd命令」の第3引数により追記か上書きか区別できます。
16行目では第3引数は「1」です。「1」は上書きモードなので、バッファのインデックス番号 listNoを変数saveDataの値で上書きします。
18行目の第3引数は「0」で追記モードです。インデックスを指定する第2引数を省略すると最後に追記されます。
このままではバッファ内では編集されましたがまだファイルは何も変化ありません。20行目でバッファ内容でファイルを上書きしています。
21行目、書き込み処理後に一覧へ飛ばしています。

サンプルファイル(2009/04/19版):
lib_address.hsp
sample.hsp


「アドレス帳⑨ 『HSP3』」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です