Perl 入門指南 - 存檔與載入





































Perl 入門指南 - 存檔與載入






簡單點,我們存檔時儲存密碼表就可以了




完整程式請參考

  • Encrypt.pm

  • guidemo.pl





也就是說, Encrypt 的 getCode 方法 (method) 會取得密碼表的字串 (string) ,然後把這個字串儲存到一個固定檔名的純文字檔裡,就完成存檔的工作了。載入就讀取這個純文字檔,取得密碼表字串再用 Encrypt 的 setCode 方法重新設定密碼表即可。


整個概念很簡單,可是存檔時也是可能出現 $encrypt 為 -1 的情況,因此這邊也要先進行條件檢查。


儲存 Encrypt 物件為 Save 按鈕,對應到 save_button 副程式,如下
sub save_button {
if ($encrypt == -1) {
$display_message = "No Encrypt object can save!!";
}
else {
open(CODE, ">code.txt");
print CODE $encrypt->getCode();
close(CODE);
$display_message = "The code is saved.";
}
}



這裡利用內建函數 open() 建立檔案,需要兩個參數 (parameter) ,第一個參數為處理變數的名稱,第二個參數為檔案路徑
open(CODE, ">code.txt");



寫入內容到檔案則是利用 print 函數,後面接處理變數與要寫入的內容
print CODE $encrypt->getCode();



完成檔案工作,使用另一個內建函數 close() 關閉檔案
close(CODE);



存檔工作結束,訊息欄顯示 "The code is saved." 。


載入則是讀取 code.txt 中的內容,因為檔案內容就是密碼表。不過載入時有可能檔案不存在的情況,這是因為沒有 Save 過,所以相同目錄下不存在 code.txt 檔案,所以這邊也是先做個檔案是否存在的條件檢查,程式如下
sub load_button {
my $data;
if (-e './code.txt') {
open(DATA, "<code.txt");
read DATA, $data, 26;
$encrypt = new Encrypt;
$encrypt->setCode($data);
close(DATA);
$display_message = "code: ".$encrypt->getCode();
}
else {
$display_message = "Load denied!!";
}
}



這裡我們先用 -e './code.txt' 判斷檔案是否存在
if (-e './code.txt') {



若不存在訊息欄就顯示 "Load denied!!" ,若存在就進行載入工作,這裡是用 read 函數讀取檔案資料
read DATA, $data, 26;



然後我們將 $data 設定給 $encrypt 即可,這裡同樣 $encrypt 要先建立一個新的 Encrypt 物件
$encrypt = new Encrypt;
$encrypt->setCode($data);



這是因為 $encrypt 是 -1 的話,相對就沒有 setCode() 可用了。


Encrypt 的 setCode 方法很簡單,就把 $data 指派給 Encrypt 的 $code 就可以了,請參考程式檔案 Encrypt.pm 。




來執行看看囉!下面是存檔



下面是載入



好了,我們接下來繼續完成 ClearCopy 兩個按鈕,使之成為完成版的 guidemo.pl 囉!


















中英文術語對照
方法method
字串string
參數parameter



您可以繼續參考
GUI 篇

  • GUI 的基本概念

  • 整合 Encrypt 套件

  • GUI 中的編碼與解碼

  • 存檔與載入

  • 完成版的 guidemo.pl

  • 下一步





相關目錄

回 Perl 入門指南
回 Perl 教材
回首頁



參考資料

http://perldoc.perl.org/functions/open.html
http://perldoc.perl.org/functions/close.html
http://www.tutorialspoint.com/perl/perl_files.htm







沒有留言:




















window.___gcfg = { 'lang': 'zh-TW' };





Popular posts from this blog

迅雷 Thunder 7.9.43.5054 免安裝版 (9.1.41.914 安裝版) - 支援BT下載的萬用 檔案下載工具

qBittorrent 4.1.1 免安裝中文版 - 取代uTorrent的BT下載器

嘸蝦米輸入法免安裝版 1.0.13.589 - 唯一只用英文字母輸入的中文輸入法