| 外部インタフェース/API | ![]() |
1. 変更するエントリを見つけて確認
pb_changeに渡される引数は、Propertiesオブジェクトpb_htableと要求されるエントリに対するnameキーです。関数pb_changeは、nameキーを使ってpb_htableについてgetを呼び出します。ここで、空白をアンダースコアに変更するためにpb_keyfilterが呼ばれます。getメソッドは、エントリ(あるいはエントリが見つからない場合はnull)を変数entryに出力します。pb_changeは、isemptyを呼び出してエントリが空かどうかを決定します。エントリが空の場合は、pb_changeは名前が電話帳に追加されるというメッセージを表示し、ユーザはエントリに対して電話番号を入力することができます。
else文でエントリが見つかった場合は、pb_changeはpb_displayを呼び出してエントリを表示します。その後input を使って代わりのエントリを確認します。ユーザがy以外を入力した場合は、関数はリターンします。
function pb_change(pb_htable,name)
entry = pb_htable.get(pb_keyfilter(name));
if isempty(entry)
disp(sprintf('The name %s is not in the phone book', name));
return;
else
pb_display(entry);
r = input('Replace phone numbers in this entry (y/n)? ','s');
if r ~= 'y'
return;
end;
end;
2. 新規の電話番号を入力し電話帳のエントリを変更
pb_changeは、dispを使って新規の電話番号の入力のためのプロンプトを表示します。その後pb_changeは、「エントリを追加のために入力」で説明したのと同じステートメントを使って、データを変数entryに入力します。
その後、既存のエントリと新規のエントリを置き換えるために、pb_changeは(フィルタされた)キーnameと新規エントリを使ってpb_htableについてputを呼び出します。その後で、エントリが変更されたことを示すメッセージを表示します。
disp 'Type in the new phone number(s), one per line.'
disp 'To complete the entry, type an extra Enter.'
disp(sprintf(':: %s', name));
entry=[name '^'];
while 1
line = input(':: ','s');
if isempty(line)
break;
else
entry=[entry line '^'];
end;
end;
pb_htable.put(pb_keyfilter(name),entry);
disp ' '
disp(sprintf('The entry for %s has been changed', name));
| 関数pb_removeの説明 | 関数pb_listallの説明 | ![]() |